PHP/MySQL | норм защита от sql inj или не
неправильное применение фильтров, ты не проверяешь данные, ты из очищаешь и зачем-то приводишь к другому типу
базе данных похер такие очистки в БД всё залетает в виде СТРОК
очищать нужно при выводе в браузер и то на любителя, если не хочешь XSS чтобы балдели на страницах, XSS не выполняется в БД, строка хранится в том же виде
норм защита строк от скл иньекций mysql на php 5.6 или неочень, не сильно шарю в безопасности...
еще такйо вариант есть, но хз в чем разница:
function jopa($str) {
$str = mysql_real_escape_string($str);
return $str;
}
еще такйо вариант есть, но хз в чем разница:
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