webForumDet fria alternativet

Stänga av register_globals i scriptet?

2 svar · 215 visningar · startad av Peeer

PeeerMedlem sedan mars 20025 907 inlägg
#1

Hej!
Håller på och utvecklar en applikation modell större, som ev. kommer att köras på ett antal olika servrar. Problemet är att en del av dessa servrar har register_globals = on och en del har det inte. Går det (direkt i koden) att stänga av denna otygsfunktion på de servrar som har den på?

Om inte, hur ska man skydda sig mot att användare skickar data i querystrings som påverkar scriptet?

MatteMedlem sedan aug. 20002 975 inlägg
#2

Genom att du arbetar direkt mot array-variablerna, d.v.s $_GET['variabel'] o.s.v istället för $variabel, så ska det inte göra så stor skillnad på om register_globals är satt eller ej, ur säkerhetssynpunkt.

Låt dessutom bli alla omskrivningar typ
$variabel = $_POST['variabel'];

Absolut viktigast är detta när du arbetar med sessionsvariabler.

Arbetar du direkt med array-variablerna så är det heller inget problem att flytta skripten mellan servrar med register_globals satt eller ej.

Undvik dessutom att ha samma index för sessionsvariabler som för t.ex. POST- eller GET-variabler, annars kan dessa påverka sessionsvariabeln då register_globals är satt.

Själv brukar jag lägga till ett prefix i mina index för sessionsvariabler, typ $_SESSION['sess_user'], så jag kan vara säker på att det inte blir någon variabelkrock.

PeeerMedlem sedan mars 20025 907 inlägg
#3

Vi får köra på det då. Tackar :)

120 ms totalt · 3 externa anrop · v20260731065814-full.beb2e261
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
118 ms — hämta tråd, inlägg och bilagor (db)