2013-09-20 3 views
0

Я использую приложение на базе PHP, MySQL, в котором некоторые запросы на серверный код с передней стороны выполняются с использованием запросов GET. В стороне сервера, я получить эти значения, используя $_GET[variable] ..Как я могу предотвратить генерируемую пользователем строку запроса от обработки

Типичный URL-я использовать его, как:

http://localhost/mysite/processdata.php?variable='somedata' 

говорят, что URL-адрес выше генерируется и отправляется на сервер, когда пользователь выполняет действие , но пользователь всегда может изменить запрос в URL-адресе. Есть ли механизм, чтобы определить, генерируется ли запрос приложением или пользователем? и предотвратить обработку, если она сгенерирована пользовательской/несанкционированной программой?

+0

(* В двух словах *) - установите условия 'if/else', если' GET' не соответствует установленным условиям, остановите выполнение. [См. Пример] (http://stackoverflow.com/a/6447617/1415724) –

+0

@ Fred-ii-: спасибо за ответ ура Fred .. его nt только abt разные переменные .. но разные значения для одной и той же переменной. такие как: variable = 'data1' действительны, если сгенерированы приложением .. но его nt действителен, если пользователь генерирует эту строку запроса .. потому что он может затем использовать переменную = 'data2' также. –

+0

Добро пожаловать. Хорошо, если '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' Условие 'if' встречает переменную, затем' do something'. –

ответ

0

Вы никогда не узнаете, отправлено ли ваше приложение или отправлено пользователем. Однако вы можете подтвердите свои данные. Например:

$value = $_GET['variable']; 
// Assuming you want the variable to be an integer 
if (preg_match('/^\D+$/', $value)) { 
    // Use value for what you need 
} 
else { 
    // Show error 
} 

Однако вы не должны изобретать велосипед. Есть ряд библиотек, которые поставляются с этим стандартом. CodeIgniter - один пример. Zend - другой. Я предпочитаю CI, но вы должны взглянуть и решить сами. В любом случае все сводится к валидации.

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