ArnisR Posted July 13, 2010 Report Share Posted July 13, 2010 Tātad man ir PHP mājas lapa, kuras dati un saturs tiek glabāts MySQL datubāzē. Mājas lapā ir gan komentēšanas forma, gan $_GET mainīgie. Kas būtu jādara, lai izsargātos no SQL injekcijām un kādi ir tie paņēmieni, lai aizsargātu savu web lapu? Šajā ziņā esmu iesācējs, tāpēc ceru uz palīdzību. Paldies! Quote Link to comment Share on other sites More sharing options...
daGrevis Posted July 13, 2010 Report Share Posted July 13, 2010 $_GET['foo'] = mysql_real_escape_string($foo); Quote Link to comment Share on other sites More sharing options...
php newbie Posted July 13, 2010 Report Share Posted July 13, 2010 kaut kā dīvaini... varbūt: $foo = mysql_real_escape_string($_GET['foo']); Quote Link to comment Share on other sites More sharing options...
daGrevis Posted July 13, 2010 Report Share Posted July 13, 2010 Ai, nu jā... =D Quote Link to comment Share on other sites More sharing options...
daGrevis Posted July 13, 2010 Report Share Posted July 13, 2010 Tas karstums vienkārši..... Quote Link to comment Share on other sites More sharing options...
mefisto Posted July 13, 2010 Report Share Posted July 13, 2010 Dīvaini .. izskatās ka šeit neviens nelieto PDO , vai vismaz mysqli. Quote Link to comment Share on other sites More sharing options...
ArnisR Posted July 14, 2010 Author Report Share Posted July 14, 2010 Paldies par mysql_real_escape_string(); funkciju! Bet ir vēl viena funkcija, ar kuru it kā tiek pārbaudīts, lai GET mainīgajā 'category' būtu tikai naturālie skaitļi, pretējā gadījumā redirekts uz galveno lapu. if(!preg_match("|^[\d]+$|", $_GET["category"])){header("Location: ./"); exit();} Vai ar to pietiek, lai izsargātos no SQL injekcijām? Quote Link to comment Share on other sites More sharing options...
marcis Posted July 14, 2010 Report Share Posted July 14, 2010 Cik diskusijas jau te ir bijušas par šo tēmu? Veseliem skaitļiem - intval() Decimāldaļskaitļiem - floatval() vai vismaz number_format() Stringiem - mysql_real_escape_string() Mainīgo validācija jau ir cits jautājums. Manuprāt, tev pilnīgi pietiek pārbaudīt vai mainīgais $_GET['category'] eksistē, tālāk, ja tam jābūt ciparam, liekam kverijā, izlaižot caur intval() (ja $_GET['category'] nav skaitliska vērtība, tad intval() atgiezīs 0) un skatamies vai kaut kas tika atselektēts no datubāzes. Ja datubāze neko neatgriež (tā tas visdrīzāk būs arī seleketējot pie id=0), tad mainīgais līks un vispār viss līks, un metam erroru vai redirektojam, vai vispār ejam sist klientu. Kaut kā tā. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.