Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Атаки на сценарииВ PHP-сценариях существует угроза локального или удаленного внедрения файлов, а также SQL-инъекции как причина двух типичных недочетов программистов. В первом случае, если программист использует в сценарии файлы, то возможно указать в качестве параметра скрипта такой путь к файлу, который будет прочтен и отображен на экране, к примеру, /etc/passwd. В случае SQL-инъекции взломщик меняет параметры скрипта таким образом, что запрос к БД становится уязвимым. Если передается числовой параметр, то его можно заменить на -1 OR 1=1, в результате чего выполнится условие 1=1, всегда равное true, и из БД будут выбраны все данные. Также может быть использован оператор UNION, позволяющий задать еще несколько запросов вкупе к тому, который уже выполняется. Защититься от подобного можно, тщательно фильтруя содержимое переменной и приводя ее к числовому типу, после чего проверяя ее на корректность. Также можно обрезать лишние символы, к примеру, если точно известно, что параметр id не может быть более 99999, следует обрезать строку-параметр до 5 символов, после чего уже приводить ее к числу и проверять. Если же передается строковый параметр, то возможны добавления кавычек и последующих за ними операторов, к примеру, если имеет место быть запрос вида
SELECT id_news, news_date, news_caption, news_text, news_id_author FROM news WHERE news_caption = LIKE('%Test%'), где Test – строка, передеваемая в качестве параметра скрипту, то взломщик может передать следующий параметр: text = ')+and+(news_id_author='1')/*
В результате этого внутри сценария появится запрос
SELECT id_news, news_date, news_caption, news_text, news_id_author FROM news WHERE news_caption = LIKE('%') AND (news_id_author=’1’)/*%)
В этом запросе комментарий отсечет ненужные символы и будут выведены только статьи под авторством автора № 1 с любыми заголовками. Защититься от подобных атак можно фильтрацией переменных, удалением из них опасных символов, а также «заслешиванием» всех опасных символов, после чего они экранируются и не воспринимаются как управляющие, а становятся просто частью текста, который корректно воспринимается БД.
|