|
Бесплатные PHP скрипты - форум техподдержки |
Форум техподдержки WR-Скриптов на php. Обсуждаем: основы программирования на PHP 5 - 7 версий, различные подходы к написанию скриптов на php 7 без MySQL. А также WR-скрипты: бесплатные доски объявлений, скрипты форумов, Гостевые книги, Каталог ссылок, Галерея, Фотоальбом, Счётчики, Рассылки, Анекдот и другие. Принимаются пожелания для новых версий. Сообщите какой скрипт нужен для Вашего сайта, постараемся найти или реализовать. Скачать скрипты можно бесплатно. Вместе мы сделаем бесплатные php скрипты лучше и доступнее!
|
| Сегодня: 14.10.2024 - 08:55:48
Страницы: 1 Защита от SQL-injectionОбъявление - WR-Scriptы в UTF-8 кодировке |
---|
Активно обновляю скрипты и перевожу их в UTF-8 кодировку. Список перекодированных php скриптов доступен на главной странице сайта. Скачивайте скрипты и устанавливайте на свой сайт! В ближайшее время обновлю каталог знакомств, форум Про, фотоальбом, доски объявлений лайт и ЛЮКС.
На форуме, пожалуйста, пишите что модернизировать в скриптах в первую очередь. Постараюсь исправить большую часть пожеланий! Планирую продолжить работы весь 2023 год.
|
Автор | Сообщение |
---|
HawkDoom •
H Участник форума
|
Защитить себя от SQL-injection | |
|
Сообщение # 1 |
27.12.08 - 16:44:07
| | HawkDoom •
H Участник форума
|
Защитить себя от SQL-injection можно таким простым способом: создать файл такого содержания
<?php $get_ar = array_values($_GET); $c_a_g = count($get_ar); for ($i = 0;$i < $c_a_g;$i++){ if(eregi('union(.*)select',$get_ar[$i])){ header("Location: //site.com"); exit; } if(eregi('order(.*)by',$get_ar[$i])){ header("Location: //site.com"); exit; } } $post_ar = array_values($_POST); $c_a_p = count($post_ar); for ($i = 0;$i < $c_a_p;$i++){ if(eregi('union(.*)select',$post_ar[$i])){ header("Location: //site.com"); exit; } if(eregi('order(.*)by',$post_ar[$i])){ header("Location: //site.com"); exit; } } ?>
и включать его в самый верх скрипта в котором используется обращение к базе данных. Не знаю почему до сих пор не придумали этот способ - уж очень много в интернете сайтов подверженных этой болезни. Идея может и не нова но я дошёл до неё сам. Вместо site.com укажите куда надо направлять хакера - это может быть страничка на вашем сайте например со статьей как нехорошо ломать сайты или посыланием его на х.. ну сообразите , если что обрасчайтеззь :) | |
|
Сообщение # 2 |
27.12.08 - 16:52:51
| | And •
A Участник форума
|
HawkDoom, это где-нибудь опробовано? работает?
Выходит это только "чисто теоретические предположения"... | |
|
Сообщение # 3 |
28.12.08 - 22:20:52
| | HawkDoom •
H Участник форума
|
And, хы , ты попробуй сначала а потом утверждай =) я наверно просто так написал.
там только не header("Location: //site.com") а header("Location: http://site.com") вот | |
|
Сообщение # 4 |
08.02.09 - 14:48:24
|
| AntiGun •
A Участник форума
|
HawkDoom, защита от SQL-injection - это, конечно, хорошо. Но Вам разве не известно, что сей форум базы данных не использует вообще, а вместо них текстовые файлы. Так что, страшная SQL-injection не принесёт вреда. Или я чего-то не понимаю? | |
|
Сообщение # 5 |
11.02.09 - 18:07:43
| | ЗлобныйАнонимст •
З гость
|
Такая проверка на иньекцию обходится хакором элементарно например ununionion или UNioN | |
|
Сообщение # 6 |
10.03.09 - 13:56:08
| | Илья •
И гость
|
ЗлобныйАнонимст, да ты видимо хакер))) тогда кури маны)) функция Код: является аналогом функции Код: и отличается тем что игнорирует различия в регистре символов алфавита | |
|
Сообщение # 7 |
06.02.10 - 17:28:10
| | PHP_прогер •
P Участник форума
|
Люди, чтобы не было SQL инъекции, просто фильтруйте то, что кидаете в запрос. Допустим:
Код: $sql = mysql_escape_string( $_GET['text'] ); $query = mysql_query( "SELECT * FROM table WHERE text LIKE '%{$sql}%' ORDER BY id DESC" );
// В случае с поиском, данный фильтр пропускает символы "%". // Чтобы запретить это: $sql = str_replace( "%", "", $sql );
// Но этот символ не даст возможности испахабить запрос, поэтому инъекции не будет.
| | |
|
Сообщение # 8 |
14.06.10 - 11:24:37
| | PHP_прогер •
P Участник форума
|
Ну и ещё забыл написать. Данную функцию можете использовать конечно для цифр, но советую делать так:
Код: // Допустим $_GET['number'] будет равно "56 а здесь sql хакера"
$id = intval( $_GET['number'] ); if( $id > 0 ) { // Тут наш код } else { // Тут вывод ошибки, если нет номера. }
| | |
|
Сообщение # 9 |
14.06.10 - 11:29:30
| | hazik •
H Участник форума
|
PHP_прогер расскажи подробнее | |
|
Сообщение # 10 |
18.06.10 - 00:02:56
| | WR •
W Участник форума
|
а функция eregi() в php больше не поддерживается. Код уже не сработает. Нужна другая конструкция для защиты от SQL-инъекций. | |
|
Сообщение # 11 |
13.01.19 - 17:30:20
| | Страницы: 1
|