---
title: "Säkerhet i mySQL?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/180507-säkerhet-i-mysql"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "alioooop"
published: "2009-10-01T09:56:04.000Z"
updated: "2009-10-10T10:40:53.000Z"
replies: 39
views: 3824
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/180507-säkerhet-i-mysql"
---

# Säkerhet i mySQL?

_Sida 1 av 2._

## #1 — alioooop, 2009-10-01T09:56Z

hej

håller på att försöka få min sida säker men hittar så många olika sätt men alla har sina negativa sidor.

då är min fråga, vad ska jag använda mig utav för funktion eller om jag ska skriva en ultimat egen funktion, hur ska den se ut?
såg även att vissa har &-tecken runt sina variabler som ska in i databasen, vad ger detta?

frågan har säkert ställts tusen ggr förr men hittade inte ett bra svar.

snälla hjälp :)

MVH alioooop

Permalänk: https://www.webforum.nu/p/180507

## #2 — nitro2k01, 2009-10-01T10:19Z

Jag gissar att du använder PHP? 
Använd mysqli-interfacet med prepared statements så eliminerar du all risk för SQL-injektioner i ett svep.

Läs mer här: <http://devzone.zend.com/article/686>

Permalänk: https://www.webforum.nu/p/2206587

## #3 — alioooop, 2009-10-01T10:33Z

joo eftersom att min tråd ligger i php kategorin så använder jag php ;)

tack iaf ska kolla upp det där =)

Permalänk: https://www.webforum.nu/p/2206590

## #4 — alioooop, 2009-10-01T10:36Z

men den där beskriver ju endast läsning, vill ju kunna skriva säkert i tex forms osv :)

Permalänk: https://www.webforum.nu/p/2206591

## #5 — MickeA.com, 2009-10-01T11:01Z

> **[alioooop skrev:](https://www.webforum.nu/p/1482534)**
>
> men den där beskriver ju endast läsning, vill ju kunna skriva säkert i tex forms osv :)

Men då har du läst något annat, när jag kollar länken ovan hittar jag massor med information om hur man skriver till databasen, med prepared statements.

Permalänk: https://www.webforum.nu/p/2206593

## #6 — alioooop, 2009-10-01T11:10Z

> **[MickeA.com skrev:](https://www.webforum.nu/p/1482537)**
>
> Men då har du läst något annat, när jag kollar länken ovan hittar jag massor med information om hur man skriver till databasen, med prepared statements.

fattar inte ett skit av det där! är det där det enda riktigt säkra sättet? 

skulle du kunna beskriva lite med något exempel? =)

Permalänk: https://www.webforum.nu/p/2206594

## #7 — alioooop, 2009-10-01T11:18Z

```php
<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$stmt = $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd', $code, $language, $official, $percent);

$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;

/* execute prepared statement */
$stmt->execute();

printf("%d Row inserted.\n", $stmt->affected_rows);

/* close statement and connection */
$stmt->close();

/* Clean up table CountryLanguage */
$mysqli->query("DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d Row deleted.\n", $mysqli->affected_rows);

/* close connection */
$mysqli->close();
?>
```

hittade det här och den fattade jag, så man kan inte skriva in något i variablerna som kan manipulera databasen på något vis?

Permalänk: https://www.webforum.nu/p/2206595

## #8 — jme, 2009-10-01T11:26Z

> **[alioooop skrev:](https://www.webforum.nu/p/1482539)**
>
> \[PHP\]
> hittade det här och den fattade jag, så man kan inte skriva in något i variablerna som kan manipulera databasen på något vis?

Nej, så länge implementation (mysqli) i sig är säker (fast det är en helt annan sak det)

Annars så är det också trevligare att slippa pilla med fnuttarna (').

Permalänk: https://www.webforum.nu/p/2206596

## #9 — alioooop, 2009-10-01T11:28Z

men hur ska jag få den säker? det är det som är mitt problem, vet hur jag ska connecta men är rädd för sql injection

Permalänk: https://www.webforum.nu/p/2206597

## #10 — MickeA.com, 2009-10-01T11:29Z

> **[alioooop skrev:](https://www.webforum.nu/p/1482538)**
>
> fattar inte ett skit av det där! är det där det enda riktigt säkra sättet?

Nej, som det står i texten kan du använda det hederliga sättet med *mysql_real_escape()* också, men det står även att om du istället använder mysqli så kommer du bl.a. ner i storlek på frågorna . Just den biten handlar om att få lite bättre optimerad kod.

Permalänk: https://www.webforum.nu/p/2206598

## #11 — MickeA.com, 2009-10-01T11:31Z

Sök! Sql injektion har tagit upp tusen gånger. Sök här i phpforumet t.ex. så kommer du hitta hur mycket information som helst.

Permalänk: https://www.webforum.nu/p/2206599

## #12 — alioooop, 2009-10-01T11:34Z

$albumName = mysql_real_escape_string($\_POST\['albumName'\]) ;

denna rad kod ger mig detta fel så därför kan jag inte använda det...

Warning: mysql_real_escape_string() \[function.mysql-real-escape-string\]: Access denied for user 'photocatwalk.com'@'srv20.one.com' (using password: NO) in /customers/photocatwalk.com/photocatwalk.com/httpd.www/make_album.php on line 35

Warning: mysql_real_escape_string() \[function.mysql-real-escape-string\]: A link to the server could not be established in /customers/photocatwalk.com/photocatwalk.com/httpd.www/make_album.php on line 35

Permalänk: https://www.webforum.nu/p/2206601

## #13 — jme, 2009-10-01T11:37Z

mysql_real_escape_string() kräver en öppen anslutning till databasen.

har du öppnat en anslutning till databasen före du använde denna funktion och gav du ett lösenord också?

Permalänk: https://www.webforum.nu/p/2206603

## #14 — alioooop, 2009-10-01T11:38Z

> **[jme skrev:](https://www.webforum.nu/p/1482548)**
>
> mysql_real_escape_string() kräver en öppen anslutning till databasen.

hur skapar man en öppen anslutning? :P

Permalänk: https://www.webforum.nu/p/2206604

## #15 — alioooop, 2009-10-01T11:40Z

faan jag är en idiot :P nu fattar jag

Permalänk: https://www.webforum.nu/p/2206605

## #16 — nitro2k01, 2009-10-01T11:55Z

Men mysql_real_escape_string behöver du ju inte om du använder prepared statements. Det går ju att glömma mysql_real_escape_string och då är du plötsligt osäker igen. Om du däremot skriver om all din kod så att den använder prepared statements så är problemet ur världen.

Permalänk: https://www.webforum.nu/p/2206607

## #17 — alioooop, 2009-10-01T12:00Z

okej blir mkt att skriva om men det löser jag :)

Permalänk: https://www.webforum.nu/p/2206608

## #18 — colione, 2009-10-01T13:09Z

Ett bättre alternativ än att använda mysqli\_\* är att använda sig av PHP Data Objects (PDO) då detta bl.a är mer flexibelt i prepared statements, har stöd för fler databaser (lättare att byta databas om behovet skulle finnas).

En grundlig genomgång för PDO finns här (sidan är nere för tillfället, men den kommer nog upp snart igen):
<http://www.phpro.org/tutorials/Introduction-to-PHP-PDO.html>
Den här artikel-serien är också bra:
<http://www.phpeveryday.com/articles/PDO-Setting-Connection-Attributes-P544.html>

Det har även skrivits en del om PDO på wF så en sökning bör ge dig en del träffar.

Permalänk: https://www.webforum.nu/p/2206617

## #19 — alioooop, 2009-10-01T13:11Z

> **[colione skrev:](https://www.webforum.nu/p/1482566)**
>
> Ett bättre alternativ än att använda mysqli\_\* är att använda sig av PHP Data Objects (PDO) då detta bl.a är mer flexibelt i prepared statements, har stöd för fler databaser (lättare att byta databas om behovet skulle finnas).
> 
> En grundlig genomgång för PDO finns här (sidan är nere för tillfället, men den kommer nog upp snart igen):
> <http://www.phpro.org/tutorials/Introduction-to-PHP-PDO.html>
> 
> Det har även skrivits en del om PDO på wF så en sökning bör ge dig en del träffar.

tack ska kolla sen när jag kommer hem. =)

Permalänk: https://www.webforum.nu/p/2206618

## #20 — jme, 2009-10-01T16:03Z

Jag rekommenderar också PDO.

Permalänk: https://www.webforum.nu/p/2206628

---

Tråden på webben: https://www.webforum.nu/amne/php/180507-säkerhet-i-mysql  
Nästa sida: https://www.webforum.nu/amne/php/180507-säkerhet-i-mysql/page2.md
