daGrevis Posted April 23, 2010 Report Share Posted April 23, 2010 http://lv.php.net/manual/en/function.filter-input.php BrīC, Kā man būtu jāizmanto šī funkcija, lai nebūtu jābaidās no $_POST[] hakošanas mēģinājumiem. Tas ir - kāds filtrs? Vispār Jūšu domas par šo "zvēru"... :P Quote Link to comment Share on other sites More sharing options...
briedis Posted April 23, 2010 Report Share Posted April 23, 2010 Kas par hakošanas mēģinājumiem? :)) XSS - htmlspecialchars sql injekcija - mysql_real_escape_strings... ..tas arī praktiski viss, par ko būtu jāsatraucas... (vēl protams CSRF, bet tas nedaudz sarežģītāk) Uzmetot aci filter_input, īsti nesaskatu jēgu :( Nez ar ko atšķiras šitie: $search_html = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_SPECIAL_CHARS); $search_html = htmlspecialchars($_GET['search']); Quote Link to comment Share on other sites More sharing options...
daGrevis Posted April 23, 2010 Author Report Share Posted April 23, 2010 Neprasi man, tikai pats mācos. :D Tātad precizēšu skaidrībai, labo, ja kļūdos! :) $_POST[] un $_GET[], pret XSS. $data1 = htmlspecialchars($_POST['data1']); $data2 = htmlspecialchars($_GET['data2']); MySQL injekcijām... pirms pieprasījuma veikšanas. $data = mysql_real_escape_string($data); Un amatieriem viss? :D Quote Link to comment Share on other sites More sharing options...
marcis Posted April 23, 2010 Report Share Posted April 23, 2010 Tas arī ir viss, kas vajadzīgs. Sarežģītākas lietas ir vajadzīgas tikai tur, kur jāļauj kaut kādi tagi -> WYSIWYG, BB code - daļu input datu nav vēlams laist caur htmlspecialchars() :) Quote Link to comment Share on other sites More sharing options...
briedis Posted April 23, 2010 Report Share Posted April 23, 2010 Tieši tā - viss atkarīgs no tā kur kurus datus izmanto... Principā vajadzētu būt tā, ka datubāzē tiek glabāti orģinālie dati, un pie izvades tiek izmantots htmlspecialchars... ja tas ir vesels skaitlis, tad $id = (int)$_GET['id']; (ja GET id būs ne-skaitlis, tad atgriezts tiek "0") real_esc_string izmanto kā pēdējo pirms liek tos datus kvērijā... Quote Link to comment Share on other sites More sharing options...
codez Posted April 23, 2010 Report Share Posted April 23, 2010 tad $id = (int)$_GET['id']; (ja GET id būs ne-skaitlis, tad atgriezts tiek "0") Es šo vēl iesaku papildināt ar @, lai, ja $_GET['id'] nav definēts, nav jāraksta isset vai neizmet kļūdu. $id=(int)@$_GET['id']; Quote Link to comment Share on other sites More sharing options...
briedis Posted April 23, 2010 Report Share Posted April 23, 2010 (edited) Es šo vēl iesaku papildināt ar @, lai, ja $_GET['id'] nav definēts, nav jāraksta isset vai neizmet kļūdu. $id=(int)@$_GET['id']; @ ir ļaunuma sakne! :D $id = isset($_GET['id']) ? (int)$_GET['id'] : 0; Edited April 23, 2010 by briedis Quote Link to comment Share on other sites More sharing options...
daGrevis Posted April 23, 2010 Author Report Share Posted April 23, 2010 Tas (int) pārbauda, vai vērtība ir skaitlis? :) Kas līdzīgs is_numeric()? Quote Link to comment Share on other sites More sharing options...
Code Posted April 23, 2010 Report Share Posted April 23, 2010 Nē, mēģina konvertēt vērtību uz integer. Būtībā tas pats kas intval(). Quote Link to comment Share on other sites More sharing options...
codez Posted April 23, 2010 Report Share Posted April 23, 2010 @ ir ļaunuma sakne! :D Kāpēc? Reliģiski apsvērumi vai kāds pamatojums? Es domāu, ka šādās elementārās vietās to var mierīgi lietot. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted April 23, 2010 Author Report Share Posted April 23, 2010 Man gribētos piekrist codez... :) Quote Link to comment Share on other sites More sharing options...
rATRIJS Posted April 23, 2010 Report Share Posted April 23, 2010 (edited) Nez - man, personīgi, nepatīk, ka neredz kļūdas, ja tur tās ir. Jā - notice, ja naff nekas traks, bet šā vai tā. Pieļauju, ka savu laiku aizņem arī kļūdas konstatēšana un attiecīgā teksta ģenerēšana (nezinu cik daudz no tā noņem tas @. Pieļauju, ka teksts tiek uzģenerēts, bet tik izvadīts netiek). Protams, isset, arī kaut ko aizņem, tā kā varētu būt, ka es runāju baigās muļķības. Vēl cilvēkam var iestāties baigā mānija lietojot @ kur vajag un kur nevajag, tādā veidā saražojot kodu, kurā ir sarežģīti samanīt kļūdas. Lai vai kā - man tas tiešām vairāk ir reliģijas jautājums - patīk, ka viss ir bez E_* (arī surpesotiem) :P Bet nu daudz kas jau ir atkarīgs arī no projekta... Lai vai kā - es par @ neizmantošanu!!! ^_^ Edited April 23, 2010 by rATRIJS Quote Link to comment Share on other sites More sharing options...
daGrevis Posted April 24, 2010 Author Report Share Posted April 24, 2010 @rATRIJS http://www.brandonchecketts.com/archives/php-performance-isset-versus-empty-versus-php-notices 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.