jest dobrze zabezpieczyć id poprzez dodanie przed wartością (int)
Czy takie coś przed czymś zabezpiecza?zrozumiałem że dzięki (int) żadne ekstra znaki czy litery nie będą brane pod uwagę
( ( [uid] => 55 [nazwa] => CCBC 1325-LP [opis] => Kamera Kolorowa, przetwornik CCD 1/3" Sony SuperHAD czu?o?? 0.6Lux rozdzielczo?? 480 linii Funkcja AES AGC BLC Uzas:12VDC/24VAC/2.8W wymiar 122x72x63mm [ilosc] => 1 [cena] => 111 ) [53] => Array ( [uid] => 53 [nazwa] => CCBC 1325-LP [opis] => Kamera Kolorowa, przetwornik CCD 1/3" Sony SuperHAD czu?o?? 0.6Lux rozdzielczo?? 480 linii Funkcja AES AGC BLC Uzas:12VDC/24VAC/2.8W wymiar 122x72x63mm [ilosc] => 1 [cena] => 99 ) )
foreach($_SESSION['koszyk'] as $produkt){
$_SESSION['koszyk'] [$id] ['ilosc']
filtruj($_SESSION['koszyk'] [$id] ['ilosc']) filtruj($_SESSION['koszyk'] [$id] ['cena']) filtruj($_SESSION['koszyk'] [$id] ['opis'])
$cracktrack = $_SERVER['QUERY_STRING']; $wormprotector = array('chr(', 'chr=', 'chr%20', '%20chr', 'wget%20', '%20wget', 'wget(', 'cmd=', '%20cmd', 'cmd%20', 'rush=', '%20rush', 'rush%20', 'union%20', '%20union', 'union(', 'union=', 'echr(', '%20echr', 'echr%20', 'echr=', 'esystem(', 'esystem%20', 'cp%20', '%20cp', 'cp(', 'mdir%20', '%20mdir', 'mdir(', 'mcd%20', 'mrd%20', 'rm%20', '%20mcd', '%20mrd', '%20rm', 'mcd(', 'mrd(', 'rm(', 'mcd=', 'mrd=', 'mv%20', 'rmdir%20', 'mv(', 'rmdir(', 'chmod(', 'chmod%20', '%20chmod', 'chmod(', 'chmod=', 'chown%20', 'chgrp%20', 'chown(', 'chgrp(', 'locate%20', 'grep%20', 'locate(', 'grep(', 'diff%20', 'kill%20', 'kill(', 'killall', 'passwd%20', '%20passwd', 'passwd(', 'telnet%20', 'vi(', 'vi%20', 'insert%20into', 'select%20', 'nigga(', '%20nigga', 'nigga%20', 'fopen', 'fwrite', '%20like', 'like%20', '$_request', '$_get', '$request', '$get', '.system', 'HTTP_PHP', '&aim', '%20getenv', 'getenv%20', 'new_password', '&icq','/etc/password','/etc/shadow', '/etc/groups', '/etc/gshadow', 'HTTP_USER_AGENT', 'HTTP_HOST', '/bin/ps', 'wget%20', 'uname\x20-a', '/usr/bin/id', '/bin/echo', '/bin/kill', '/bin/', '/chgrp', '/chown', '/usr/bin', 'g\+\+', 'bin/python', 'bin/tclsh', 'bin/nasm', 'perl%20', 'traceroute%20', 'ping%20', '/usr/X11R6/bin/xterm', 'lsof%20', '/bin/mail', '.conf', 'motd%20', 'HTTP/1.', '.inc.php', 'config.php', 'cgi-', '.eml', 'file\://', 'window.open', '<script>', 'javascript\://','img src', 'img%20src','.jsp','ftp.exe', 'xp_enumdsn', 'xp_availablemedia', 'xp_filelist', 'xp_cmdshell', 'nc.exe', '.htpasswd', 'servlet', '/etc/passwd', 'wwwacl', '~root', '~ftp', '.js', '.jsp', 'admin_', '.history', 'bash_history', '.bash_history', '~nobody', 'server-info', 'server-status', 'reboot%20', 'halt%20', 'powerdown%20', '/home/ftp', '/home/www', 'secure_site, ok', 'chunked', 'org.apache', '/servlet/con', '<script', '/robot.txt' ,'/perl' ,'mod_gzip_status', 'db_mysql.inc', '.inc', 'select%20from', 'select from', 'drop%20', '.system', 'getenv', 'http_', '_php', 'php_', 'phpinfo()', '<?php', '?>', 'sql='); $checkworm = str_replace($wormprotector, '*', $cracktrack); if ($cracktrack != $checkworm) { echo "GDZIE?!"; }
$str=@iconv("utf-8", "utf-8//IGNORE", $str)
SELECT/**/*/**/FROM/**/news;
/*!SELECT*//*!**//*!FROM*//*!news*/
<?php // identyfikatory tekstowe lub liczbowe { // ktoś próbuje mieszać, throw new Exception } $orderColumn = $columns[$_GET['orderType']]; $query = "SELECT (...) ORDER BY $orderColumn"; // zapytanie // lub nazwy kolumn { // ktoś próbuje mieszać, throw new Exception } $query = "SELECT (...) ORDER BY $_GET[orderType]"; // zapytanie ?>
.Wiem ,że funkcja ma konwertować znaki specjalne do kodowani encji.Polskie znaki w tej metodzie ,są także postrzegane jako znaki specjalne,dlatego w metodzie użyłem zamiany encji na UTF-8 ,ale czy to ma sens???Czy np."\" nie zostanie z powrotem sprowadzony do postaci "\" zamiast do "amp&" która jest encją