renathy Posted April 8, 2009 Report Share Posted April 8, 2009 1) Kā nodrošināties pret sekojošo: caur get-u padod kaut ko, ko es pēc tam lieku SELECTā where vai citās daļās un es negribu, lai varētu ierakstīt iekš URLa kko, kas var izbojāt datu bāzi. 2) Kā nodrošināties, lai lietotājs formās, ko pēc tam saglabāju datu bāzē, nevarētu ierakstīt kko sliktu? Vai ir vēl kādi drošības pasākumi, kas saisīti ar lietotāju ļauno darbību? Quote Link to comment Share on other sites More sharing options...
Web Developer Posted April 8, 2009 Report Share Posted April 8, 2009 Validē visus ienākošos datus, kas ienāk no "request". Izlaid caur vienotām validācijām, bet ja nepieciešams, teiksim, db veic atsevišķu validāciju. SQL arī eskeipo to, ko liec iekš querija. Quote Link to comment Share on other sites More sharing options...
Web Developer Posted April 8, 2009 Report Share Posted April 8, 2009 Pamēģini izmantot sekojoši: [..] klasi: [..] Quote Link to comment Share on other sites More sharing options...
Web Developer Posted April 8, 2009 Report Share Posted April 8, 2009 Augstāk minētā posta "source": http://www.phpclasses.org/browse/package/3737.html Quote Link to comment Share on other sites More sharing options...
renathy Posted April 8, 2009 Author Report Share Posted April 8, 2009 Ko tu domā ar šo - SQL arī eskeipo to, ko liec iekš querija.? Quote Link to comment Share on other sites More sharing options...
renathy Posted April 8, 2009 Author Report Share Posted April 8, 2009 Augstākminētājs nodrošina to, ka dati no formām būs droši. A kā nodrošināties pret to, lai iekš GET parametriem query stringā nesaliek visu ko ļaunu? Quote Link to comment Share on other sites More sharing options...
Web Developer Posted April 8, 2009 Report Share Posted April 8, 2009 Filtrē parametrus GET šādi: http://paste.php.lv/0e2c83255f9f65127bd7cd...4499a7?lang=php izmantojot šo klasi: http://paste.php.lv/83a24a74130989b6bfabd8...0675bb?lang=php pēc tam laikam vajadzētu priekš sql tieši, bet to vajag atsevišķi likt jebkurā gadījumā... Quote Link to comment Share on other sites More sharing options...
Web Developer Posted April 8, 2009 Report Share Posted April 8, 2009 Bet vispār neesmu sajūsmā par tām klasēm. Labāk izlasi http://phpsec.org/projects/guide/ un vadoties no tur pieejamās informācijas, uzprogrammē pats savu klasi. Quote Link to comment Share on other sites More sharing options...
usver Posted April 10, 2009 Report Share Posted April 10, 2009 (edited) vienkārši: kad datus izmanto HTML elementos (selektos, utt) izmanto htmlspecialchars() - tas pasargās no tā, ka cilvis mēģina bakstīt kaut ko tādu: index.php?param=><script>alert('hello');</script> ieliekot iekš DB: izmanto mysql_real_escape_string(), lai nodrošinātos pret to, ka cilvis baksta kaut ko tādu kā ' OR 1=1-- kad datus velc ārā no DB: tāpat izmanto stripslashes(htmlspecialchars($teksts)); vai vienkārši htmlspecialchars(); papildus noderīga lieta, ar ko pārbaudīt komentārus pret spamu - jo spameri sarodas ar laiku: function contains_badwords($string){ $string = strtolower($string); $bads = array('viagra','cialis','porn','lesbian','gay','<a href='); // sliktie vārdi foreach($bads as $badword){ if (false !== strpos( $string, $badword)){ return true; } } return false; } Lietojums: if (contains_badwords($_POST['komentars'])){ die('ej ka tu nafik, spameri!'); } un vispār - sveika, renathy :) Edited April 10, 2009 by usver Quote Link to comment Share on other sites More sharing options...
Mr.Key Posted April 10, 2009 Report Share Posted April 10, 2009 ja tikai lai neko nesabojā - pietiks ar mysql_real_escape_string($_GET['var']) un (int) $_GET['var'] tas arī viss. + jau aprakstītais htmlspecialchars, bet tas neattiecas uz datubāzi, tas attiecas uz HTML un XSS hackiem. Quote Link to comment Share on other sites More sharing options...
Aleksejs Posted April 10, 2009 Report Share Posted April 10, 2009 Vēl ieteicams izmantot "prepared statements". http://stackoverflow.com/questions/732561/...e-common-escape Quote Link to comment Share on other sites More sharing options...
marcis Posted April 11, 2009 Report Share Posted April 11, 2009 Par paša programmētāja aizmāršību, manā gadījumā, rūpējas klase, kura ne tikai eskeipo mainīgos, bet arī atvieglo man dzīvi. Ideja ir apmēram šāda: http://paste.php.lv/9c9d7081ce90347e038179...31f03e?lang=php Quote Link to comment Share on other sites More sharing options...
renathy Posted November 19, 2009 Author Report Share Posted November 19, 2009 Cik bieži Jūs izmantojat prepared_statements? R. 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.