Разделы презентаций


Работа с БД. SQL Инъекции. PDO

Содержание

Добавляем данные$query="INSERT INTO myTable (fio,gender,actor) VALUES ('Ivanov',1,'Bruce')";if ($result=mysql_query($query)){ $id=mysql_insert_id();}else{ $id=-1;}if ($id

Слайды и текст этой презентации

Слайд 1Работа с БД. SQL Инъекции. PDO.
Урок № 4

Работа с БД. SQL Инъекции. PDO.Урок № 4

Слайд 2Добавляем данные
$query="INSERT INTO myTable (fio,gender,actor) VALUES ('Ivanov',1,'Bruce')";
if ($result=mysql_query($query)){
$id=mysql_insert_id();
}
else{
$id=-1;
}
if ($id

не выполнен id=".$id;
}
else{
echo "запись успешно добавлена id=".$id;
}

Добавляем данные$query=

Слайд 3Удаляем данные
$deleted_id=2;
$query="DELETE FROM myTable WHERE id=".$deleted_id;
if ($result=mysql_query($query)){
$id=mysql_affected_rows();
}
else{
$id=-1;
}
if ($id

выполнен ";
}
else{
echo "вы успешно удалили ".$id." строк из таблицы";
}

Удаляем данные$deleted_id=2;$query=

Слайд 4Обновляем данные
$updated_id=4;
$query="UPDATE myTable SET actor='Williams',fio='Petrov' WHERE id=".$updated_id." LIMIT 1";
if ($result=mysql_query($query)){
$id=mysql_affected_rows();
}
else{
$id=-1;
}
if

($id

из таблицы";
}
Обновляем данные$updated_id=4;$query=

Слайд 5Синтаксис запросов
$tablename=”myTable”;
$query="INSERT INTO `“.$tablename.”` …..”;

$field=“id”;
$query=“… WHERE `“.$field.”`= ….”

Синтаксис запросов$tablename=”myTable”;$query=

Слайд 6SQL инъекции. Суть проблемы
myScript.php?id=1
//листинг myScript.php
$id=$_GET[‘id’];
$query=“SELECT * FROM myTable WHERE id=”.$id
//вывод

на экран данных о пользователе
myScript.php?id=-1 UNION SELECT id,fio,gender, actor FROM

myTable WHERE id=-152
myScript.php?id=-1 UNION SELECT id,fio,gender, actor FROM myTable WHERE id=1


SQL инъекции. Суть проблемыmyScript.php?id=1//листинг myScript.php$id=$_GET[‘id’];$query=“SELECT * FROM myTable WHERE id=”.$id//вывод на экран данных о пользователеmyScript.php?id=-1 UNION SELECT

Слайд 7Простые меры безопасности
Проверяем входные данные
If (is_numeric($_GET[‘id’]))
Экранируем специальные символы
$name=mysql_real_escape_string($name);
$query=“SELECT *

FROM table WHERE name=”.$name
Не выводим никакой информации о структуре БД
Используем

FURL (Friendly URL)

Простые меры безопасностиПроверяем входные данные 	If (is_numeric($_GET[‘id’]))Экранируем специальные символы	$name=mysql_real_escape_string($name);	$query=“SELECT * FROM table WHERE name=”.$nameНе выводим никакой информации

Слайд 8Исключения
function inverse($x) {
if (!$x) {

throw new Exception('Деление на ноль.');
}
else return

1/$x;
}
Исключенияfunction inverse($x) {  if (!$x) {    throw new Exception('Деление на ноль.');  }

Слайд 10Класс PDO
Удобство работы с различными СУБД
Широкие возможности по защите от

SQL инъекций
mysql_query – deprecated (http://www.php.net/manual/ru/function.mysql-query.php)

Класс PDOУдобство работы с различными СУБДШирокие возможности по защите от SQL инъекцийmysql_query – deprecated (http://www.php.net/manual/ru/function.mysql-query.php)

Слайд 12Первый запрос к БД
try{//осуществлено подключение к бд
//допускаем явную ошибку
$DBH->prepare('DELECT name

FROM MyTable')->execute();
$DBH->prepare('SELECT fio FROM myTable')->execute();
}
catch(PDOException $e){
echo "Хьюстон, у нас

проблемы.";
file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND);
}

Слайд 17Задачи
Создать форму для добавления новых пользователей в базу данных
Реализовать всё

на PDO и на mysql_query

ЗадачиСоздать форму для добавления новых пользователей в базу данныхРеализовать всё на PDO и на mysql_query

Слайд 18Литература
http://habrahabr.ru/post/148151/
SQL injection для начинающих. Часть 1
http://www.php.net/manual/ru/
Безопасность>>Безопасность баз данных
http://habrahabr.ru/post/148701/
Защита от SQL-инъекций

в PHP и MySQL

vk.com/bsuweb

Литератураhttp://habrahabr.ru/post/148151/SQL injection для начинающих. Часть 1http://www.php.net/manual/ru/Безопасность>>Безопасность баз данныхhttp://habrahabr.ru/post/148701/Защита от SQL-инъекций в PHP и MySQLvk.com/bsuweb

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика