sql >> Databáze >  >> RDS >> Mysql

PHP/SQL databáze dotazování osvědčených postupů a zabezpečení

Javierova odpověď s odkazem na owasp je dobrý začátek.

Existuje několik dalších věcí, které můžete udělat:

  1. Pokud jde o útoky SQL injection, můžete napsat funkci, která odstraní běžné příkazy SQL ze vstupu, jako je „DROP“ nebo „DELETE * WHERE“, takto:

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

    Poté napište funkci, která zkontroluje váš vstup proti tomuto poli. Ujistěte se, že žádná z věcí uvnitř $sqlarray nebude běžným vstupem od vašich uživatelů. (Nezapomeňte na to použít strtolower, díky lou).

  2. Nejsem si jistý, zda memcache funguje s PHP 4, ale můžete zavést určitou ochranu proti spamu pomocí memcache tím, že povolíte pouze určitý vzdálený IP přístup ke stránce process.php X tolikrát za Y časové období.

  3. Privilegia jsou důležitá. Pokud potřebujete pouze oprávnění pro vkládání (řekněme zpracování objednávky), měli byste se přihlásit do databáze na stránce procesu objednávky s uživatelem, který má pouze oprávnění pro vkládání a možná výběr. To znamená, že i když vložení SQL prošlo, mohli by provádět pouze dotazy INSERT / SELECT a nikoli mazat nebo restrukturalizovat.

  4. Důležité soubory pro zpracování php vložte do adresáře, jako je /include. Poté všem IP adresám zakažte přístup k tomuto adresáři /include.

  5. Vložte osolený MD5 s uživatelským agentem + remoteip + váš salt do uživatelské relace a nechte jej ověřit při každém načtení stránky, že v jeho cookie je správný MD5.

  6. Zakázat určitá záhlaví (http://www.owasp.org/index.php/Testing_for_HTTP_Methods_and_XST ). Zakázat hlavičky PUT (pokud nepotřebujete nahrávání souborů)/TRACE/CONNECT/DELETE.



  1. MySql SELECT AS - Připojit všechny názvy polí

  2. Před přístupem k datům z kurzoru se ujistěte, že je správně inicializován

  3. SQL QUERY vícenásobné vyhledávání v jednom řádku pro nalezení dat z jiného řádku ve stejné tabulce

  4. Použití MySql s Entity Framework 4 a Code-First Development CTP