Loading...
PHP/MySQL | норм защита от sql inj или не
Вилы Выкидные (22 июня 2024, в 9:03)
неправильное применение фильтров, ты не проверяешь данные, ты из очищаешь и зачем-то приводишь к другому типу

базе данных похер такие очистки в БД всё залетает в виде СТРОК

очищать нужно при выводе в браузер и то на любителя, если не хочешь XSS чтобы балдели на страницах, XSS не выполняется в БД, строка хранится в том же виде
Так тут речь о sql inj, а не о xss
Kira Schwarz ,
норм защита строк от скл иньекций mysql на php 5.6 или неочень, не сильно шарю в безопасности...

еще такйо вариант есть, но хз в чем разница:

function jopa($str) {
$str = mysql_real_escape_string($str);
return $str;
}

mysql_real_escape_string() считается устаревшей в 5.6 так что использовать её не целесообразно
php
   <?php  function filter($data) {  $explode = explode("|", $data);  if (count($explode) != 3) { return null; }  $method = $explode[0]; $name = $explode[1]; $type = $explode[2];  $array_method = [ "get" => INPUT_GET, "post" => INPUT_POST, ];  $array_type = [ "int" => FILTER_VALIDATE_INT, "str" => FILTER_SANITIZE_SPECIAL_CHARS, ];  if (array_key_exists($method, $array_method) && array_key_exists($type, $array_type)) { $filter_input = filter_input($array_method[$method], $name, $array_type[$type]); if ($filter_input !== false) { return $filter_input; } }  return null; }  function xss_protection($data) { return htmlspecialchars($data, ENT_QUOTES, mb_internal_encoding()); }  $login = filter("post|login|str"); $password = filter("post|password|str");  echo xss_protection("<script>alert();</script>");   
Код написал по памяти без тестирования, но по идее должен работать. Первую функцию я придумал, а вторую не помню, где видел — вроде на каком-то фреймворке.
________
посл. ред. 06.09.2025 в 12:38; всего 2 раз(а); by STUDIO
https://www.php.net/manual/ru/book.pdo.php
Онлайн: 5
Время:
Gen. 0.086
(c) Bym.Guru 2010-2026