Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
$login = pg_escape_string($_POST['login']);
pg_query($db, "SELECT id FROM people where \"login\"='".$login."' and \"password\"='".$password."'")
Достаточно ли pg_escape_string для защиты от инекций??
function escape_inj($text) {
$text = strtolower($text); // Приравниваем текст параметра к нижнему регистру
if (
!strpos($text, "select") && //
!strpos($text, "union") && //
!strpos($text, "select") && //
!strpos($text, "order") && // Ищем вхождение слов в параметре
!strpos($text, "where") && //
!strpos($text, "char") && //
!strpos($text, "from") //
) {
return true; // Вхождений нету - возвращаем true
} else {
return false; // Вхождения есть - возвращаем false
}
}
гы.. а если строка закодирована? urldecode еще поставить надо... да и то не панацея. Хаксеры изъ...бнутсяможно написать подобную фукнцию проверки на инъекции
PHP:function escape_inj($text) { $text = strtolower($text); // Приравниваем текст параметра к нижнему регистру if ( !strpos($text, "select") && // !strpos($text, "union") && // !strpos($text, "select") && // !strpos($text, "order") && // Ищем вхождение слов в параметре !strpos($text, "where") && // !strpos($text, "char") && // !strpos($text, "from") // ) { return true; // Вхождений нету - возвращаем true } else { return false; // Вхождения есть - возвращаем false } }
function PrepareStr ($str, $maxLen=0) { //Тут можно добавить проверку на максимальную длину логина, что в принципе запретит всякие длинные и дурные значения. Например, длинна логина не больше 20 символов.
/*if ($maxLen!=0) {
if (strlen($str) > $maxLen) {
echo "Hacker He-he!";
}
}*/
$str= ($maxLen!=0) ? substr($str,0,$maxLen) : $str;
return myAddSlashes(trim(strip_tags($str)));
}
function myAddSlashes($str) {
$str = stripslashes($str);
return addslashes($str);
} //В этой функции желательно еще добавить проверку на то включен ли magic_quotes
а зачем вы экранируете кавычки \"login\"?