Articles of sql injection

SQL-инъекция и защита XSS в PHP, объединяющая Ignators кода xss_clean () и Zend PDO

Я ищу функцию, которая будет защищать все запросы БД от MOST от общих угроз и атак. например, сочетая классы CI и Zend с тем, чтобы пользовательский код имел полностью настроенную функцию безопасности.

эта динамика (столбец & таблица) PHP выбирает запрос безопасным?

Имена таблиц и столбцов не могут быть связаны с использованием PDO -> bindParam (), но я уверен, что больше, чем кто-либо хотел бы иметь возможность. Немного поздно, но я написал это раньше, и пока это работает. Я как бы новичок в php и хотел бы знать, что вы думаете и если это безопасно. $type = […]

Объединение подготовленного оператора в функцию

Я читал статьи о SQL Injection и решил изменить свой код, чтобы предотвратить SQL-инъекцию. Например, у меня есть вход, который я вставляю в мою базу данных. Первоначально моя защита от инъекций была такой: function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); // $data = addslashes($data); $data = mysql_real_escape_string($data); return $data; } […]

Действительно ли инъекция SQL возможна путем добавления второго запроса?

В SO есть много предупреждений о SQL-инъекциях, но никто из них не ответил, как это происходит? В этом вопросе я предполагаю, что это MySQL и PHP. Базовый mysql_ не принимает второй запрос внутри запроса, не так ли? Итак, в основном, это $unsafe = "');DROP TABLE table;–"; mysqli_query($con,"INSERT INTO table (Column) VALUES ('$unsafe'"); на самом деле […]

Когда я убираю все входные данные, иногда он оставляет в строке строчки (\) и вставляет их в базу данных. Почему это происходит и как я могу это решить?

Я нашел функцию stripslashes, но я предпочел бы найти, где я добавляю больше слэшей, чем должен. Мои функции используют mysql_real_escape_string один раз для каждой переменной, и я запрашиваю базу данных, используя «insert into foo (bar, bar) values ​​($ baz, $ baz)», возможно, это проблема. phpinfo дает magic_quotes_gpc On On magic_quotes_runtime Off Off magic_quotes_sybase Off Off […]

что еще я могу сделать, чтобы не допустить инъекции XSS и SQL Injection?

Если мой сайт когда-либо выйдет вживую (не думайте, что это будет, это просто учебное упражнение в данный момент). Я использовал mysql_real_escape_string (); по данным POST, SERVER и GET. Кроме того, я использовал intval (); на строках, которые должны быть только числами. Я думаю, что это покрывает меня от SQL-инъекции ? Верный? Могу ли я сделать […]

SQL-инъекция | Изменение значений идентификатора

Я застрял в проблеме с sql-инъекцией. На моей странице отображаются данные таблицы следующим образом: <input type="checkbox" name="id[]" value="<?php echo $row['id']; ?>" /><?php echo $row['data']; ?><br /> Как я могу быть уверенным, что представленное значение является идентификатором этой конкретной строки, а не случайным числом, «введенным» на странице? Очевидно, я бы начал проверять, что id возвращает true […]

Почему подготовленные заявления защищают от инъекций?

Я пришел далеко, чтобы получить базовое понимание подготовленных операторов, и я понимаю, что они предотвращают атаки SQL-инъекций. Но мне еще предстоит понять, ПОЧЕМУ они защищают от указанных атак. Я знаю, что есть похожие вопросы, но я не нашел ответы полностью удовлетворительными. Пример – очень опасный код Итак, у нас есть самый простой способ общения с […]

Почему мое подготовленное заявление дает мне фатальную ошибку?

Я пытаюсь использовать PDO, а не MySQL, основываясь на основном совете, который мне когда-либо давался, поэтому сегодня я потратил попытку конвертировать весь свой код. Пока все идет хорошо, и теперь я пришел к подготовке моих заявлений (так как это часть точки). По моему запросу у меня есть следующее $newquery=$DBH->query("SELECT id, postdate, title, SUBSTRING_INDEX(body,' ',20) as […]

Почему мой запрос с именованными параметрами возвращает пустой результат?

Я конвертирую свой код MySQL в PDO, чтобы воспользоваться подготовленными операторами. Первоначально я получал фатальную ошибку, как описано в этом вопросе . Я решил эту проблему, но при попытке добавить параметры возникли проблемы. Код, который я пытаюсь получить, – это: include ("foo/bar.php"); try { $DBH = new PDO("mysql:host=$hostname;dbname=$database", $username, $password); } catch(PDOException $e) { echo […]