Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 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 с любыми заголовками.

Защититься от подобных атак можно фильтрацией переменных, удалением из них опасных символов, а также «заслешиванием» всех опасных символов, после чего они экранируются и не воспринимаются как управляющие, а становятся просто частью текста, который корректно воспринимается БД.

 

Date: 2015-09-02; view: 506; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию