---
title: "Server med PHP 5.3, globals? magic_quotes?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/184938-server-med-php-5-3-globals-magic-quotes"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Renegade8164"
published: "2010-10-15T12:30:11.000Z"
updated: "2010-10-16T03:17:01.000Z"
replies: 5
views: 607
page: 1
pages: 1
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/184938-server-med-php-5-3-globals-magic-quotes"
---

# Server med PHP 5.3, globals? magic_quotes?

## #1 — Renegade8164, 2010-10-15T12:30Z

Hej. 
Jag håller på med en ny sajt och så kom jag på att tänka på säkerhet. Min server som jag kör sajten på har PHP 5.3. mina kod-block om säkerheten vet inte jag om den är helt onödig kod eftersom att PHP 5.3 har tagit bort register_globals?, eller gör någon nytta alls eller om jag borde ändra på koden på något vis?

Detta är en del av min kod; (har tagit bort kod som inte innefattar de ja frågar om samt kommentar-block)

```php
<?php

class init 
{
    function add_magic_quotes($array) {
        foreach ($array as $k => $v) {
            if (is_array($v)) {
                $array[$k] = add_magic_quotes($v);
            } else {
                $array[$k] = addslashes($v);
            }
        }
    return $array;
}
```

```php
<?php

 error_reporting(E_ALL | E_STRICT);
 
 ini_set('arg_separator.output',    '&amp;');
 ini_set('magic_quotes_runtime',    0);
 ini_set('magic_quotes_sybase',     0);
 ini_set('session.cache_expire',    200000);
 ini_set('session.cache_limiter',   'none');
 ini_set('session.cookie_lifetime', 200000);
 ini_set('session.gc_maxlifetime',  200000);
 ini_set('session.use_trans_sid',   0);
 ini_set('url_rewriter.tags',       '');

 // Security-fix: globals
 if (isset($_POST['GLOBALS']) ||
     isset($_FILES['GLOBALS']) ||
     isset($_GET['GLOBALS']) || 
     isset($_COOKIE['GLOBALS']) || 
     isset($_REQUEST['GLOBALS'] )) {
     die;
 }
 
 // Require important initialization class
 require_once "../resources/class/init.php";
 $init = new init;
 
 // Security-fix: magic_quotes
 if (!get_magic_quotes_gpc()) {
     $_GET    = $init->add_magic_quotes($_GET);
     $_POST   = $init->add_magic_quotes($_POST);
     $_COOKIE = $init->add_magic_quotes($_COOKIE);
 }
```

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

## #2 — nitro2k01, 2010-10-15T13:05Z

Alttså... PHP-teamet tog bort magic quotes eftersom det var ett dumt sätt att lösa problemet på. Istället för att emulera magic quotes bör du göra rätt, dvs escapa vid varje databas-fråga. Ännu bättre är att använda mysqli-interfacet och prepared statements, som i princip helt eliminerar risken att råka ut för SQL-injektioner..

Magic quotes saniterar bara data som inkommer via formulär. Ponera att du någonstans har en sträng som hämtas ut från databasen och sedan stoppas in i en annan SQL-fråga. Den strängen kommer ju inte att saniteras eftersom den inte inkom via ett formulär.

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

## #3 — colione, 2010-10-15T13:31Z

Istället för mysqli bör du kolla på PDO och dess prepared statements, det är mer generiskt och samma php-kod kan användas om du skulle behöva byta databas.
<http://php.net/manual/en/book.pdo.php>

Om något bör du kolla om magic_quotes är påslaget och rensa bort slasharna.
Sök även efter pdo här på wF så får du upp lite intressanta träffar.

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

## #4 — Renegade8164, 2010-10-15T15:25Z

Har kört med PDO ett år nu.. :)

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

## #5 — nitro2k01, 2010-10-15T19:07Z

> **[Renegade8164 skrev:](https://www.webforum.nu/p/1519938)**
>
> Har kört med PDO ett år nu.. :)

Med prepared statements också? I sådana fall så bör du inte använda magic quotes - alls.

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

## #6 — Renegade8164, 2010-10-16T03:17Z

Japp..
Jag har bara utvecklat php i några år, så jag kan inte hela php-manualen^^, men försöker granska och använda mig av de bästa lösningarna php5 erbjuder :P.. Bäst att fråga innan, så lär man sig om man gör fel.

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

---

Tråden på webben: https://www.webforum.nu/amne/php/184938-server-med-php-5-3-globals-magic-quotes
