2013-09-29 4 views
0

Итак, у меня есть этот вопрос после просмотра freelancer.com. Что это (фрилансер), так это то, что каждый раз, когда новый пользователь регистрируется ... автоматически создает html-страницу для этого пользователя. Например, пользовательское имя пользователя joshm, тогда freelancer будет генерировать www.domain.com/u/joshm.html, а не только эту страницу генерируется, но также динамически загружается контент на этой странице .html.Создание html-страницы с использованием php

Использование этого метода лучше, чем использование www.domain.com/users.php?id=1 (которое подвержено атакам XSS/SQL Injection).

Вопрос, как формируется эта страница? и как информация динамически выводится на эту HTML-страницу?

Спасибо.

+3

* «Использование этой техники лучше, чем использование www.domain.com/users.php?id=1 (которое подвержено атакам XSS/SQL Injection)». * - Неверно. Пользовательский ввод - это вход пользователя. Это не менее уязвимо для XSS или SQL Injection, а затем для любого другого способа получения данных от пользователя. Вы должны дезинфицировать/бежать на границе формата данных. – Quentin

+0

Возможный дубликат [Как предоставить каждому зарегистрированному пользователю свой собственный URL-адрес с помощью PHP?] (Http://stackoverflow.com/questions/16706935/how-do-i-give-each-registered-user-their-own- url-using-php) – Quentin

+3

Посмотрите 'mod_rewrite', эти html-страницы не являются статическими html-файлами. –

ответ

3

Использование этой техники лучше, чем использование www.domain.com/users.php?id=1 (которое подвержено атакам XSS/SQL Injection).

Оба метода одинаково уязвимы для любой уязвимости, которую вы им подвергли, если вы не знаете, что делаете. Использование строки запроса более небезопасно.

Более того, /u/joshm.html, скорее всего, просто «маска». Страница все еще обрабатывается динамически с запросами базы данных и все, будучи столь же уязвимой, как и users.php?name=joshm. URL-адрес не совпадает с файлом. Просто потому, что URL-адрес говорит, что «joshm.html» никоим образом не означает, что файл с таким именем физически находится на жестком диске в любом месте. Веб-сервер может отвечать на запросы по этому URL-адресу каким-либо образом, он не должен использовать файл на диске. Веб-сервер - это программа, которая прослушивает порт 80 и отвечает на HTTP-запросы. Это не имеет никакого отношения к файловой системе как таковой. .html - это хороший RESTful способ указать, что вы хотите получить HTML-версию информации пользователя joshm; это не значит, что есть файл с таким именем.

Для получения дополнительной информации об этой теме просмотрите «URL-адреса переписывания» и «красивые URL-адреса».

Смежные вопросы