====== Процесс обработки URL ====== Каждый разработчик должен понимать, что происходит с момента ввода адреса страницы в браузере и вывода содержимого на экран – процесс обработки URL. По своей сути, веб-разработка – это процесс обработки url (запрос/ответ). Чем прозрачнее данный процесс, тем легче расширять ваше веб-приложение. Ключевые понятия: * HTTP Request/Response * Cookies (сессии) * Обработка пользовательского ввода * Вывод данных ===== HTTP Request/Response ===== Для полного понимания процесса советую вам открыть вкладку Net в Firebug’е или Fiddler и посмотреть, какие именно http-запросы отправляются и какие приходят ответы. ===== Cookies ===== Cookies бывают сессионными (до закрытия браузера) и временные (устанавливается срок жизни). Как правило, в сессионных cookies хранится пользовательская сессия (PHPSESSID). Cookies устанавливаются как для пути (/), так и целиком для домена (поддоменов). Управление cookies происходит как на стороне сервера, так и на стороне клиента. При XSS уязвимостях злоумышленник первым делом попытается выкрасть cookies, например вставкой следующего кода: После этого, скорее всего, злоумышленник получит контроль над вашей сессией и будет чувствовать себя как дома… ===== Пользовательский ввод ===== Не доверяйте никому. По возможности используйте строгую типизацию, это избавит вас от возможных ошибок. Если на странице у вас используется постраничный вывод, то помните, что страница не может быть отрицательной и вылезать за общее кол-во страниц. Любознательный пользователь обязательно попробует передать в переменную page все что угодно, но не то, что вы ожидаете прежде всего. ===== Вывод данных. Шаблоны ==== Если вы работаете с пользовательским вводом, то перед выводом полученных пользовательских данных обработайте их. Как правило, хватает обычного htmlspecialchars и striptags. ====== ====== [[start:работа_со_структурой_бд|Далее >>>]]