Я ищу функцию, которая будет защищать все запросы БД от MOST от общих угроз и атак. например, сочетая классы CI и Zend с тем, чтобы пользовательский код имел полностью настроенную функцию безопасности.
Имена таблиц и столбцов не могут быть связаны с использованием 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; } […]
В 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 […]
Если мой сайт когда-либо выйдет вживую (не думайте, что это будет, это просто учебное упражнение в данный момент). Я использовал mysql_real_escape_string (); по данным POST, SERVER и GET. Кроме того, я использовал intval (); на строках, которые должны быть только числами. Я думаю, что это покрывает меня от 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 […]