sql >> Database >  >> RDS >> Mysql

PHP/SQL-database met vragen over goede praktijken en beveiliging

Het antwoord van Javier met de owasp-link is een goed begin.

Er zijn nog een paar dingen die u meer kunt doen:

  1. Met betrekking tot SQL-injectie-aanvallen, kunt u een functie schrijven die algemene SQL-instructies uit de invoer verwijdert, zoals " DROP " of "DELETE * WHERE", zoals deze:

    *$sqlarray =array( " DROP ","of 1=1","union select","SELECT * FROM","select host","create table","FROM users","users WHERE");*

    Schrijf vervolgens de functie die uw invoer vergelijkt met deze array. Zorg ervoor dat alle dingen in de $sqlarray geen algemene invoer van uw gebruikers zijn. (Vergeet niet om strtolower hiervoor te gebruiken, bedankt lou).

  2. Ik weet niet zeker of memcache werkt met PHP 4, maar je kunt spambeveiliging instellen met memcache door slechts een bepaald aantal externe IP-toegang tot de process.php-pagina X een aantal keren in een Y-periode toe te staan.

  3. Voorrechten zijn belangrijk. Als u alleen invoegrechten nodig heeft (bijvoorbeeld orderverwerking), dan moet u inloggen op de database op de bestelprocespagina met een gebruiker die alleen invoeg- en selecteerrechten heeft. Dit betekent dat zelfs als een SQL-injectie zou slagen, ze alleen INSERT / SELECT-query's konden uitvoeren en niet konden verwijderen of herstructureren.

  4. Zet belangrijke php-verwerkingsbestanden in een map zoals /include. Geef vervolgens alle IP's geen toegang tot die /include-map.

  5. Plaats een gezouten MD5 met de agent van de gebruiker + remoteip + uw zout in de sessie van de gebruiker, en laat het bij elke paginalading verifiëren dat de juiste MD5 in hun cookie zit.

  6. Sta bepaalde headers niet toe (http://www.owasp.org/index.php/Testing_for_HTTP_Methods_and_XST ). PUT niet toestaan ​​(als u geen bestandsuploads nodig hebt)/TRACE/CONNECT/DELETE-headers.



  1. datetime naar totalminute in sql

  2. Welke SQL-query is sneller? Filter op Deelnamecriteria of Where-clausule?

  3. Welk ontwerppatroon voor versiebeheer zou u aanbevelen?

  4. Vind alle zoekopdrachten die een bepaalde tabel gebruiken