Недавно я прочитал учебник (http://code.tutsplus.com/tutorials/a-beginners-guide-to-http-and-rest--net-16340) при определении заголовков HTTP для изменения действия скрипта. В учебнике приведен пример PHP-скрипта для выполнения этой задачи.
$method = $_SERVER['REQUEST_METHOD'];
switch($method) {
case 'PUT':
$this->create_contact($name);
break;
case 'DELETE':
$this->delete_contact($name);
break;
case 'GET':
$this->display_contact($name);
break;
default:
header('HTTP/1.1 405 Method Not Allowed');
header('Allow: GET, PUT, DELETE');
break;
}
...и упоминает
Мы используем оператор switch, которого следует избегать в реальном приложении:
Несколько вопросов:
- Почему бы вам не использовать эту функцию?
- Есть ли уязвимость в использовании самого оператора switch или переменная $_SERVER делает его уязвимым?
- Ответ в этом сообщении (Защищен ли $_SERVER['QUERY_STRING'] от XSS?) рекомендует использовать htmlentities для защиты значений $_SERVER. Этого достаточно?
Большое спасибо!