sql >> Database teknologi >  >> RDS >> Mysql

PHP/SQL-database, der forespørger om god praksis og sikkerhed

Javiers svar, som har owasp-linket, er en god start.

Der er et par ting mere, du kan gøre mere:

  1. Med hensyn til SQL-injektionsangreb, kan du skrive en funktion, der fjerner almindelige SQL-sætninger fra input som " DROP " eller "DELETE * WHERE", sådan her:

    *$sqlarray =array( " DROP ","eller 1=1","union select","SELECT * FROM","vælg vært","opret tabel","FRA brugere","brugere WHERE");*

    Skriv derefter den funktion, der kontrollerer dit input i forhold til dette array. Sørg for, at noget af det inde i $sqlarray ikke er almindeligt input fra dine brugere. (Glem ikke at bruge strtolower på dette, tak lou).

  2. Jeg er ikke sikker på, om memcache virker med PHP 4, men du kan sætte en vis spambeskyttelse på plads med memcache ved kun at tillade en bestemt ekstern IP-adgang til process.php-siden X antal gange i Y-perioden.

  3. Privilegier er vigtige. Hvis du kun har brug for indsæt-rettigheder (f.eks. ordrebehandling), så skal du logge ind i databasen på ordreprocessiden med en bruger, der kun har indsæt- og måske vælge-rettigheder. Det betyder, at selvom en SQL-injektion kom igennem, kunne de kun udføre INSERT/SELECT-forespørgsler og ikke slette eller omstrukturere.

  4. Læg vigtige php-behandlingsfiler i en mappe såsom /include. Tillad derefter alle IP'er adgang til det /include-bibliotek.

  5. Sæt en saltet MD5 med brugerens agent + remoteip + dit salt i brugerens session, og få den til at verificere ved hver sideindlæsning, at den korrekte MD5 er i deres cookie.

  6. Tillad visse overskrifter (http://www.owasp.org/index.php/Testing_for_HTTP_Methods_and_XST ). Tillad PUT (hvis du ikke har brug for filupload)/TRACE/CONNECT/DELETE headers.



  1. MySQL's INSERT IGNORE INTO &fremmednøgler

  2. Oracle Indsæt via Vælg fra flere tabeller, hvor én tabel muligvis ikke har en række

  3. Hvordan OPDATERE en kolonne ved hjælp af en anden kolonne i en anden tabel? SQL-fejl:ORA-00933:SQL-kommando blev ikke afsluttet korrekt

  4. Beregn procenter fra SUM() i den samme SELECT sql-forespørgsel