SQL инъекция

Статус
В этой теме нельзя размещать новые ответы.
PHP:
	function Filter ($f)
	{
		$inj = Array(";","'","*","/"," \ ","DROP", "SELECT", "UPDATE", "DELETE", "drop", "select", "update", "delete", "WHERE", "where", "-1", "-2", "-3","-4", "-5", "-6", "-7", "-8", "-9");
		if ( in_array($f, $inj) ) return '';
		$str = $f;
		$str = trim($str);
		$str = htmlspecialchars($str, ENT_NOQUOTES);
	//	$str = str_replace( '&lt;', '<', $str );
	//	$str = str_replace( '&gt;', '>', $str );
	//	$str = str_replace( '&quot;', '"', $str );
	//	$str = str_replace( '&', '&#38', $str );
	//	$str = str_replace( '"', '&#34', $str );
	//	$str = str_replace( "'", '&#39', $str );
	//	$str = str_replace( '<', '&#60', $str );
	//	$str = str_replace( '>', '&#62', $str );
	//	$str = str_replace( '\0', '', $str );
	//	$str = str_replace( '', '', $str );
	//	$str = str_replace( '\t', '', $str );
	//	$str = str_replace( '../', '. . / ', $str );
	//	$str = str_replace( '..', '. . ', $str );
	//	$str = str_replace( ';', '&#59', $str );
	//	$str = str_replace( '/*', '', $str );
	//	$str = str_replace( '%00', '', $str );
	//	$str = stripslashes( $str );
	//	$str = str_replace( '\\', '&#92', $str );
		return $str;
	}
	
	foreach ( $_GET as $k=>$v ) 	$_GET[$k]  	 = Filter($v);
	foreach ( $_POST as $k=>$v ) 	$_POST[$k] 	 = Filter($v);
	foreach ( $_COOKIE as $k=>$v )  $_COOKIE[$k] = Filter($v);

Фильтрую так..

А для чисел, intval'а на мой взгляд достаточно)
 
Плохо фильтруете
index.php?name=sel&name=ect
такой способ называется HPP
А для чисел быстрее работает
$cvar = (INT) $_GET['page'];
Я уже устал сторонний код от intval вычищать. Приведение типов работает быстрее и выглядит читабельнее
И будьте внимательны когда добавляете любой внешний источник, некоторые скрипты через $_SERVER["X-Forwarded-For"] ломали, а все изза невнимательности при добавлении внешнего источника.
Массивы тоже надо обнулять перед использованием
$array = '';
или
$array = array();
Вообще лучше самому почитать самоучители по этим уязвимостям, ибо достаточно много потенциальных уязвимостей
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху