Avatar billede Simon Praktikant
26. september 2004 - 13:42 Der er 12 kommentarer og
1 løsning

overføre et bestemt tegn i en parameter til php-fil

Hej, jeg har en php-side som fungerer som proxy til en database.
I den forbindelse vil jeg jo gerne sende sql-query's til den.

Det gør jeg for eksempel sådan her, med en parameter:
www.minside.dk?query=INSERT%20INTO%20Persons%20VALUES%20('Hetland',%20'Sandnes')

så henter jeg den overførte parameter i min php-fil:
$query    = $_GET['query'];
og udskriver den. Så skulle man forvente at der stod:
INSERT INTO Persons VALUES ('Hetland', 'Sandnes')
men der står:
INSERT INTO Persons VALUES (\'Hetland\', \'Sandnes\')

Mit spørgsmål er nu: hvordan overhører jeg tegnet ' som en parameter uden at der kommer \ foran?
Avatar billede sukos Juniormester
26. september 2004 - 13:46 #1
$query = strip_slashes($_GET['query']);

eller

$query = strip_slashes(urldecode($_GET['query']));

Men ligner jo umiddelbart en mega sikkerhedsrisiko???
Avatar billede Simon Praktikant
26. september 2004 - 13:58 #2
så får jeg følgende fejl:
Fatal error: Call to undefined function: strip_slashes()

nu er jeg ikke lige den største haj. Hvordan inkluderer man den funktion?
Avatar billede Simon Praktikant
26. september 2004 - 14:02 #3
jeg har fundet ud af det. _ skal ikke være der
det skal se sådan ud:
$query = stripslashes($_GET['query']);
Avatar billede sukos Juniormester
26. september 2004 - 14:03 #4
hov ja sguda!
$query = stripslashes($_GET['query']);
Avatar billede Simon Praktikant
26. september 2004 - 14:06 #5
Tak for hjælpen. nu virker det. Hvis du lige smider et svar får du point.
ang. det med sikkerheden, så har du jo ret.
Grunden til at det bliver lavet som en http-proxy er at der ikke er direkte tilgang til databasen eksternt fra. Jeg benytter b-one.
Men jeg har tænkt mig at benytte en parameter mere, som indeholder password. Er det så ikke nok da?
Avatar billede sukos Juniormester
26. september 2004 - 14:15 #6
Ikke noget som jeg ville kaste mig ud i!!!
Avatar billede Simon Praktikant
26. september 2004 - 14:18 #7
ok. Hvis du lige smider et svar får du point.
Avatar billede nicklasb Nybegynder
26. september 2004 - 14:50 #8
.. heller ikke en løsning jeg ville være glad ved. Men hvis det endeligt SKAL være, ville din løsning med password ikke være til strækkeligt efter min mening. Det kræver jo blot at kigge logfilerne igennem og se hvilke sider ens browser har besøgt. I stedet kunne du ved generering af linket lave et krypteret pass, sammensat af et almindeligt pass og en tidsfaktor.

foreksempel

$kode = md5('din selvvalgte kode' . date('aiHBcIdtwS', time()));

eller lignende. Der kunne du jo så tjekke for pass på begge servere (og godkende i tilfælde af begge er ens. Du skal dog passe på med sekundt-variabler osv, da det jo kan variere fra server til server.
men absolut ike en holdbar løsning!
Avatar billede sukos Juniormester
26. september 2004 - 16:05 #9
ehh, jeg vil heller ikke lige svare her......
Avatar billede coderdk Praktikant
26. september 2004 - 21:46 #10
Evt. check på IP - I.e. tillad kun hvis forespørgslen kommer fra en bestemt IP:

if ( $_SERVER['REMOTE_ADDR'] == '192.168.1.4' )
{
  // Din kode her...
}
else
{
  echo "Restricted access.";
}
Avatar billede Simon Praktikant
27. september 2004 - 07:59 #11
Tak for de gode forslag til at forbedre sikkerheden. Flere er naturligvis velkomne. Jeg vil lige fortælle at løsningen her indgår som en del af en skoleopgave.
Avatar billede Simon Praktikant
08. oktober 2004 - 16:09 #12
hvis der er nogen der vil have point skal i bare smide et svar.
Avatar billede Simon Praktikant
16. august 2006 - 16:00 #13
lukker spørgsmål
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester