Препятствование form_token представить в Drupal “ПОЛУЧАЕТ” формы

посмотрите раздел Open GPU Documentation: http://developer.amd.com/documentation/guides/Pages/default.aspx

HTH

8
задан ctford 1 October 2009 в 09:42
поделиться

1 ответ

Да, способ есть, , но используйте его сознательно (см. Предупреждение ниже):

Если вы создаете форму самостоятельно, добавление

$form['#token'] = FALSE;

в массив определения формы должно в первую очередь предотвратить создание токена.

Если вы имеете дело с существующей формой, вы можете обойти процесс проверки токена, отключив элемент '#token' в hook_form_alter :

// Example for removal of token validation from login (NOTE: BAD IDEA!)
function yourmodule_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'user_login_block') {
    unset($form['#token']);
  }
}

Предупреждение: Учитывая ваш вопрос, я думаю, что существует небольшое заблуждение относительно разницы (лучше, отсутствия разницы) между запросами GET и POST.

... в формах, использующих метод "GET" этот токен не нужен. Все это делает удлиняет и уродует полученный URL.

Это неверно! GET и POST - это просто два разных, но в основном эквивалентных метода передачи данных от клиента на сервер. Поскольку POST лучше подходит для передачи больших объемов данных (или данных со сложным форматом), он является установленным стандартом для отправки форм , но ни в коем случае не безопаснее / небезопаснее или более / менее безопасно, чем запросы GET . Оба типа запросов могут быть изменены злоумышленниками одинаковыми способами, поэтому оба типа должны использовать одни и те же механизмы защиты .

С запросом GET, токен делает то же самое , как с запросом POST - он доказывает серверу, что отправленные данные поступают из того же браузера на том же компьютере, что и запрос, для которого он построил форму!

13
ответ дан 5 December 2019 в 05:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: