[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Фильтрация post запросов
faxos
Доброго времени суток друзья smile.gif

В наличии есть скрипт, нужно привести его в безопасное состояние, проверил на несколько иньекций, вывелась информация в 7 файлах скрипта, по поводу не фильтрованных post-get запросов. Есть тут добрые люди, которые могут помочь с отфильтровкой данных?

В принципе вот один из файлов, в котором нашлась не приятная дырка:

---------------------------
if(isset($_GET['vklad']) && ($_GET['vklad']==0 || $_GET['vklad']==1)){ mysql_query("UPDATE data SET vklad='".$_GET['vklad']."'"); $d_vklad=$_GET['vklad']; }

if(isset($_GET['popolnenie']) && ($_GET['popolnenie']==0 || $_GET['popolnenie']==1)){ mysql_query("UPDATE data SET popolnenie='".$_GET['popolnenie']."'"); $d_popolnenie=$_GET['popolnenie']; }

if(isset($_GET['vyvod']) && ($_GET['vyvod']==0 || $_GET['vyvod']==1)){ mysql_query("UPDATE data SET vyvod='".$_GET['vyvod']."'"); $d_vyvod=$_GET['vyvod']; }

---------------------------
эти запросы нужно привести в фильтрованное и разумеется в рабочее положение.


Сама ошибка заключается в этом .$_
sergeiss
Цитата (faxos @ 21.03.2014 - 02:06)
нашлась не приятная дырка

Более правильно эта "дырка" называется "SQL-инъекция" smile.gif

Цитата (faxos @ 21.03.2014 - 02:06)
эти запросы нужно привести в фильтрованное и разумеется в рабочее положение.

Это предложение о выполнении работы? Если да, то укажи стоимость и я перенесу тему в соответствующий раздел.

Если же это вопрос о том, как это устранить своими силами, то ключевое слово для поиска инфы я тебе дал в начале ответа: "SQL-инъекция"

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
faxos
Это не работа и не что-то инное, это просьба о помощи исправить пару строчек в 7 файлах )
sergeiss
Цитата (faxos @ 21.03.2014 - 02:28)
это просьба о помощи исправить пару строчек в 7 файлах )

Да нет проблем.... Мне тут весной надо будет пару грядок вскопать в огороде в деревне. Мне вот тоже "в лом" разбираться, как это правильно сделать. Приедешь, сделаешь? Там делоФФ совсем немного.... Пару часов всего, на 7 грядках wink.gif

Ну что, я тебя жду?

PS. Или, иными словами, если ты не уважаешь труд программиста, то почему кто-то должен уважать тебя? У нас на форуме забесплатно только ПОМОГАЮТ, т.е. когда человек сам что-то делает, но запутался или не знает, как сделать правильно. А халява "только пара строчек" - за деньги. Тут даже раздел целый есть на эту тему. "Проекты" называется. У тебя же пусть и небольшой, но проект.

PPS. 400 рублей, оплата яндекс-деньги, веб-мани.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
AllesKlar
faxos
Тебе уже sergeiss ответил, что за тебя делать никто не будет, но все с радостью кинуться тебе помогать. Тут такой вид соревнований присутсвует - кто быстрее поможет и неприменно с радостью. с грустью помагать нельзя :)

Ну, психология людская такая - потратить на тебя 2 часа объясняя тебе что-то - это в кайф (опять же поумничать можно...)
А сделать за тебя твою работу за 10 минут - это уже не в кайф. Потому как я учился 5 лет + еще 38лет практиковался.. и теперь вот так вот на халяву? ну неееет :) ты с мое в окопах посиди, ногтей мешок перегрызи и т.д. сначала :)


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

Вот пример:
Нужно что-то получить из базы для определенного id
index.php?id=...

if(isset($_GET['id']) and (int)$_GET['id']  > 0)
{
$query = "SELECT * FROM table WHERE id = " . (int) $_GET['id'];
}

что мы в итоге имеем?
Если там было число, то оно пройдет проверки, и в запрос встанет число.
если там было не число, то (int) $_GET['id'] будет преобразовано в 0 и до запроса просто не дойдет дело.

_____________
[продано копирайтерам]
faxos
Надо же, как все сложно, а я думал в современном мире еще осталось человечность в людях, увы, пожалуй мне сдесь делать нечего. Ладно, счастливо вам всем.



"AllesKlar" - отдельное спасибо за попытку помочь, но я в этом мало что понимаю.
sergeiss
Цитата (faxos @ 21.03.2014 - 10:00)
увы, пожалуй мне сдесь делать нечего.

Если с халявой - то да, нечего.

Вот ты пропробуй на такси проехаться бесплатно. Мол, какая разница водителю, все равно катается туда-сюда? smile.gif
И насчет приехать ко мне вскопать огород ты тоже что-то не проявил энтузиазма. "Ничего человечного в людях не осталось... Не помогут старому, больному человеку огород вскопать..."

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
AllesKlar
faxos
Да все нормально тут с человечностью.
Просто тему ты не так озоглавил. Нужно было: помогите инвалиду первой мировой войны, кормильцу 4х деток-сироток.
Кто чем может, хоть по одной строчке кода, а то с голдоду подохнем.

И помогли бы. Еще бы и местные олигархи пришли и хостинг пожертвовали.
Хотя нет, олигархи - они такие жмоты.. ну мы бы сами на хостинг скинулись. Негоже сироткам без хостинга.

_____________
[продано копирайтерам]
VELIK505
Цитата (faxos @ 21.03.2014 - 06:00)
Надо же, как все сложно, а я думал в современном мире еще осталось человечность в людях, увы, пожалуй мне сдесь делать нечего. Ладно, счастливо вам всем.
"AllesKlar" - отдельное спасибо за попытку помочь, но я в этом мало что понимаю.

А чё ты нервничаешь? Тут делов на 3-5 мин. Если ты не понимаешь можно за 15-20 разобраться что и как делать правильно тут даже статейка есть хорошая с примерами. http://phpforum.ru/index.php?showtopic=21213
Игорь_Vasinsky
харе уже на человечность давить.
человеки есть не хотят? дети человеков есть не хотят?
сиди и паши на него, когда можешь своими делами заниматься.

если тебе не надо - то нам тем более.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Nuzhser
Да народ готов платить за труд доктора когда что болит, но когда больной скрипт то о его здоровье должни бесплатно позаботиться. Чего там по клавиатуре постукать - єто не работа

_____________
Лэт ит би
AllesKlar
Хорошее хобби - археoлогия. Интересное, опять же smile.gif

_____________
[продано копирайтерам]
inpost
А я уже было начал писать тоже стёбный комментарий.... ph34r.gif

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.