В предыдущем вопросе мне сказали, что мой запрос склонен к инъекциям SQL. get_stats = mysql_query("SELECT * FROM visitors WHERE site='$_GET[site]' AND date BETWEEN '$start_date' AND '$end_date' "); Каким будет самый простой способ приблизиться к этой проблеме? И есть ли у вас дополнительные чтения по теме инъекций? (что-то, что я могу пропустить в Google). Благодаря!
include "../admin/site.php"; // Setup db connection. $appid = -1; if (is_string($_GET["id"])) { $id = mysql_real_escape_string($_GET["id"]); $sql = "select * from version where id=$id"; $ver = mysql_query($sql); if ($id > 0 && $ver && mysql_num_rows($ver)) { $appid = mysql_result($ver, 0, "AppID"); $app = DLookUp("apps", "name", "id=$appid"); $name = mysql_result($ver, 0, "Name"); $notes = mysql_result($ver, 0, "Notes"); […]
Я провел некоторое исследование и все еще смущен. Это результат моего исследования. Может кто-нибудь прокомментировать и посоветовать, как я могу сделать это лучше, или если есть твердая реализация рок, которую я могу использовать? Способ 1: array_map('trim', $_GET); array_map('stripslashes', $_GET); array_map('mysql_real_escape_string', $_GET); Способ 2: function filter($data) { $data = trim(htmlentities(strip_tags($data))); if (get_magic_quotes_gpc()) $data = stripslashes($data); $data […]
Для функции поиска я написал запрос MySQL, который должен выполняться скриптом PHP. Я не выполняю полнотекстовый поиск. Вместо этого я выполняю поиск, используя следующий метод: … WHERE field LIKE '%etc%' AND field REGEXP '[[:<:]]etc[[:>:]]' Теперь моя идея – подготовить эти динамические значения в PHP, например: $word = '2*3%5_1^0'; // just an example $wordLike = strtr($word,array('\\'=>'\\\\','%'=>'\\%','_'=>'\\_')); […]
Я новичок в web security После траты времени на чтение некоторых блогов и сайтов сообщества, таких как SO , я нашел некоторые методы, чтобы быть в безопасности от XSS Attack и SQL Injection Но проблема в том, что большинство вопросов, связанных с безопасностью, очень старые. Итак, мой вопрос: does my following code has any major […]
Я использую PDO, чтобы поговорить с моей базой данных, и мне интересно, следует ли использовать такой тип $dbh->query("SELECT * FROM recipes WHERE id=".(int)$id); достаточно для предотвращения внедрения sql? В этом случае $ id всегда является целым числом. Я также задаюсь вопросом, что было бы хорошим способом предотвратить инъекцию в этом выражении, если переменная была строкой.
У меня есть веб-приложение с большим количеством данных и функция поиска / фильтрации с несколькими полями, такими как имя, статус, дата и т. Д. Я использую параметризованные запросы, подобные этому для регулярных (не-поисковых) запросов: $id = $_POST['itemID']; $db = mysqli_connect($host, $username, $password, $database); $sql_query = "SELECT * FROM tbl_data WHERE ID = ?"; $stmt_query = […]
Возможный дубликат: PHP: полная чистая / безопасная функция Я нашел этот фрагмент кода здесь: http://snipplr.com/view/12853/clean-variables-from-sql-injections/ Автор утверждает: Эта небольшая функция помогает бороться с общей проблемой безопасности с SQL-инъекциями, она может дезинфицировать любую глобальную переменную, такую как $ POST, $ GET, $ _SERVER и т. Д. И избегать опасных символов. Безопасен ли этот код? function _clean($str){ […]
У меня есть 2 страницы на веб-сайте, одна из них – index.php и индексная страница список всех сообщений, которые существуют в базе данных, а другая страница – post.php и post page display single post при нажатии на определенное сообщение на индексной странице. Теперь код, который я использовал для перечисления всех сообщений в index.php: $postslist = […]
Я пытаюсь понять, как предотвратить sqlinjection, я написал эту базовую функцию: function antiInjectie($inputfromform){ $temp = str_replace("'", "`",$inputfromform); $temp = str_replace("–", "~~",$temp); return htmlentitites($temp); } Однако кто-то сказал, чтобы я также принимал гекс-значения, но как это сделать? Обновление Я застрял в MDB2 и pgsql