Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Burnoutman
6 / 6 / 4
Регистрация: 05.04.2012
Сообщений: 89
1

Защита от SQL инъекций-PDO

07.11.2017, 20:21. Просмотров 756. Ответов 20
Метки нет (Все метки)

Прочитал,что для защиты от инъекций нужно использовать PDO. Если переменная является параметром в запросе,то всё нормально,

PHP
1
2
3
4
$search=$_POST['search'];
$result=$pdo->prepare("SELECT `email` FROM `zayvki` WHERE `email`=?") or die ("<script type=\"text/javascript\">alert(\"Ошибка базы данных. Обратитесь к администратору\")</script>");
$result->execute(array($search));
while($array=$result->fetch(PDO::FETCH_LAZY))

но если названием таблицы,то всё,ничего не работает. Вроде как и не должно работать с названиями таблиц,но как тогда их защитить от инъекций?
PHP
1
2
$page=$_GET['page']; 
$result=$baza->query("SELECT `title` FROM `$page`");
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2017, 20:21
Ответы с готовыми решениями:

Защита от SQL инъекций
Всем добрый день. Я второй день изучаю php в связи с тем, что мне нужно срочно...

защита от sql инъекций
Добрый день! Подскажите пожалуйста, от sql инъекций спасает ли...

Защита от sql инъекций
Есть сайт, на его странице через метод GET передаётся параметр переменной id...

Защита от SQL-инъекций
Здравствуйте, для защита от SQL-инъекций я использовал нижеуказанную функцию...

Защита от sql инъекций cookie
Когда авторизированный пользователь шагает по сайту у него каждый раз...

20
Burnoutman
6 / 6 / 4
Регистрация: 05.04.2012
Сообщений: 89
27.11.2017, 08:36  [ТС] 21
Вроде я понял как это работает по той документации, но возникла проблема, при нормальной работе с сайтом жмёшь на ссылку передаётся переменная $_GET['page'] вот как тут http://название сайта/index.php?page=novosty,но если вместо novosty написать 1111111 или другую чушь, то эта чушь выведется на экран. Но эта проблема появляется только в интернете на хостинге, на локальном компе openserver 5.2.2 php 5.5 срабатывает if
PHP
1
2
3
4
5
6
7
8
if(!empty($page))
{
    echo nl2br($page);
}
else
{
echo "<script type=\"text/javascript\">alert(\"Такая страница не найдена!\");</script>";
}
не понимаю что не так.


PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$page=$_GET['page'];
$result=$baza->prepare("SELECT `text` FROM `all_pages` WHERE `get_page`=?");                                            
 
$result->bind_param("s",$page);
                                            
$result->execute();
 
$result->bind_result($page);
                                            
$result->fetch();
 
if(!empty($page))
{
    echo nl2br($page);
}
else
{
echo "<script type=\"text/javascript\">alert(\"Такая страница не найдена!\");</script>";
}
 
$result->Close()
Добавлено через 10 часов 12 минут
Решил проблему создав новую переменную $new_page
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$page=$_GET['page'];
 
$result=$baza->prepare("SELECT `text` FROM `all_pages` WHERE `get_page`=?");                                            
 
$result->bind_param("s",$page);                                         
 
$result->execute();
 
$result->bind_result($new_page);
                                            
$result->fetch();
 
if(isset($new_page))
{
echo nl2br($new_page);
}
else
{
echo "Такая страница не найдена!";
}
$result->Close();
0
27.11.2017, 08:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2017, 08:36

PDO: Защита от SQL инъекции
Здравствуйте. Интересует способ защиты от SQL-инъекции, с БД работаю используя...

Защита от инъекций перебором массива
Я знаю, что данная тема уже не раз всплывала тут. Но у меня от прочтения...

Защититься от SQL инъекций
Добрый вечер, Форумчане Не подскажите достаточно ли данных мер для защиты от...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru