На самом деле я сделал google и получил так много результатов, но я не могу понять, потому что я новичок в этой области.
Итак, что является простым способом, что PDO, почему я должен использовать это, что такое SQL-инъекция и т. Д. С примером? 1
На самом деле теперь мой код такой.
<?php $mysql_hostname = "localhost"; $mysql_user = "root"; $mysql_password = ""; $mysql_database = "testdb"; $prefix = ""; $bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or die("Could not connect database"); mysql_select_db($mysql_database, $bd) or die("Could not select database"); ?>
<?php include('config.php'); $account_no = $_POST['account_no']; $amount = $_POST['amount']; $save = mysql_query("INSERT INTO tableamount (account_no, amount) VALUES ('$account_no', '$amount',)"); header("location: index.html"); exit(); ?>
в<?php include('config.php'); $account_no = $_POST['account_no']; $amount = $_POST['amount']; $save = mysql_query("INSERT INTO tableamount (account_no, amount) VALUES ('$account_no', '$amount',)"); header("location: index.html"); exit(); ?>
<html> <body> <form action="amount.php" method="post" enctype="multipart/form-data" name="addroom"> Account Number<br /> <input name="account_no" type="text"/><br /> Amount<br /> <input name="amount" type="text"/><br /> <input type="submit" name="Submit" value="Submit" id="button1" /> </form> </body> </html>
PDO – объекты данных PHP – это уровень доступа к базе данных, обеспечивающий единый метод доступа к нескольким базам данных.
Он не учитывает синтаксис, специфичный для базы данных, но может привести к тому, что процесс переключения баз данных и платформ будет довольно безболезненным, просто переключая строку соединения во многих случаях.
Подготовленные утверждения / параметризованные запросы являются достаточными для предотвращения ввода первого порядка в этот оператор. Если вы используете не проверенный динамический SQL где-нибудь еще в своем приложении, вы по-прежнему уязвимы для инъекций второго порядка.
Данные по заказу второго порядка данные циклически передаются через базу данных один раз перед включением в запрос, и его гораздо сложнее снять. AFAIK, вы почти никогда не видите реальных приступов второго порядка, так как обычно проще заниматься социальным проектированием.
PDO немного медленнее, чем mysql
_ *. Но он имеет большую мобильность. PDO обеспечивает единый интерфейс для нескольких баз данных. Это означает, что вы можете использовать несколько БД без использования mysql_query для mysql, mssql_query для SQL Server и т. Д. Просто используйте что-то вроде $db->query("INSERT INTO...")
всегда. Независимо от того, какой драйвер базы данных вы используете.
Таким образом, для более крупного или портативного проекта PDO предпочтительнее. Даже Zend Framework использует PDO.
SQL-инъекция
SQL-инъекция
SQL-инъекция – это метод, при котором вредоносные пользователи могут вводить SQL-команды в инструкцию SQL через ввод веб-страницы.
Введенные команды SQL могут изменять инструкцию SQL и подрывать безопасность веб-приложения.
Являются ли подготовленные PDO заявления достаточными для предотвращения SQL-инъекций?
Короткий ответ NO, PDO готовит не защитит вас от всех возможных атак SQL-Injection. Пример атаки
Как использовать PDO?
Пример:
$stmt = $dbh->prepare("SELECT * FROM tables WHERE names = :name"); $stmt->execute(array(':name' => $name));
Рекомендации
Просто представьте, что этот пользовательский ввод: "1'); TRUNCATE TABLE accounts; --"
с вашим заявлением, если пользователь знает, какая у вас структура db, вы можете легко удалить все из db (при условии, что у пользователя db есть полномочия.
Никогда не используйте пользовательский ввод непосредственно в sql-запросе, как вы это делали , всегда избегайте / бросайте перед использованием.
PDO – объекты данных PHP – это уровень доступа к базе данных, обеспечивающий единый метод доступа к нескольким базам данных.
Он не учитывает синтаксис, специфичный для базы данных, но может привести к тому, что процесс переключения баз данных и платформ будет довольно безболезненным, просто переключая строку соединения во многих случаях.
Пожалуйста, внимательно прочитайте эту ссылку , объясните, почему pdo следует использовать в php