Большинство ответов, которые я видел до сих пор, касались PHP, хотя в действительности это не зависит от языка. Ответы, которые были даны до сих пор, были с точки зрения PHP, и методы, которые вы использовали бы для доступа к информации, отличаются от языка к языку, но формат, в котором данные находятся в URL (известный как строка запроса), останется. то же самое (например: page.ext? key1 = значение & key2 = значение & ...).
Я не знаю ваших технических знаний или знаний, поэтому, пожалуйста, прости меня ...
Существует два разных способа для веб-страницы предоставить данные обратно на веб-сервер. Они известны как методы POST или GET. Также есть множество других, но ни один из них не должен использоваться в веб-дизайне любого типа при работе с обычным пользователем. Метод POST незаметно отправляется на сервер и предназначен для «загрузки» данных, тогда как метод GET виден пользователю как строка запроса в URL-адресе и предназначен только для буквального «получения» информации.
Не все сайты следуют этому правилу, но могут быть причины, почему. Например, сайт может использовать POST исключительно для обхода кэширования прокси-серверами или вашим браузером или потому, что они используют двухбайтовые языки и могут вызвать проблемы при попытке выполнить GET из-за преобразования кодировки.
Некоторые ресурсы о двух методах и о том, когда их использовать ...
http://www.cs.tut.fi/~jkorpela/forms/methods.html
http://weblogs.asp.net/mschwarz/archive/2006/12/04/post-vs-get.aspx
http://en.wikipedia.org/wiki/Query_string
Теперь с позиции строго PHP, теперь есть 3 различных массива, которые вы можете использовать для получения информации, которую веб-страница отправила обратно на сервер. Вы должны в вашем распоряжении ...
- $ _ POST ['keyname'], чтобы получить только информацию из метода POST
- $ _ GET ['keyname'], чтобы получить только информацию из метода GET
- $ _ REQUEST ['keyname'], чтобы позволить вам получить POST, GET и любую информацию COOKIE, которая могла быть отправлена. В некотором роде, особенно в тех случаях, когда вы не знаете, какой метод может использовать страница для отправки данных.
Не будьте неряшливы, перейдя непосредственно к методу $ _REQUEST. Если у вас нет случая, подобного тому, который я упоминал выше для переменной $ _REQUEST, то не используйте его. Вы хотите попробовать использовать подход «запретить все и разрешать только x, y, z», когда речь идет о безопасности. Ищите только те данные, которые, как вы знаете, будет отправлять ваш собственный сайт, ищите только те комбинации, которые вы ожидаете, и очищайте всю информацию, прежде чем использовать ее. Например ..
- Никогда не делайте eval () для чего-либо, переданного вышеупомянутыми методами. Я никогда не видел, чтобы это было сделано, но это не значит, что люди не пробовали или не делают.
- Никогда не используйте информацию напрямую с базами данных, не очистив их (исследуйте атаки с использованием SQL-инъекций, если вы не знакомы с ними)
Это далеко не все, что касается безопасности PHP, но мы здесь не для этого. Если вы хотите узнать больше по ходу дела, тогда это еще один вопрос для SO.
Надеюсь, это поможет, и не стесняйтесь задавать любые вопросы.