Большинство веб-разработчиков знают Правило Правой Руки для HTTP: если запрос меняет состояние сервера, его надо отправлять методом POST, если не меняет — можно использовать GET.
Веб-форма при отправке на сервер меняла его состояние, поэтому разработчки совершенно справедливо указали method=”POST”.
Но если обработчик обнаружил ошибки, форму надо показать снова. И признак хорошего тона — не заставлять пользователя при этом вбивать всё заново, а подставить ранее введённые им значения и показать пальцем, в каких полях ошибки. Разработчики так и сделали. Но форму у них обрабатывает один скрипт, а показывает другой, поэтому при обнаружении ошибок возврат к странице с формой делается редиректом. А POST при этом, как известно, не работает, поэтому умные разработчики передают все введённые параметры GET’ом. Попросту говоря, прямо в URL’е.
Казалось бы, ничего страшного в этом нет, показ формы никаких изменений на сервере не вызывает, поэтому использование GET в этом случае вполне допустимо.
Казалось бы… если бы не одна мелочь: в форме передаются данные про кредитные карты. Номер, CVV, срок действия, держатель… Весь набор в одном флаконе. И, естественно, при последующей отправке формы весь этот набор оседает в логах веб-сервера в виде реферера. Хуже того, особо умные пользователи могут сохранить всю эту ссылку в закладках браузера. Чтоб не набивать потом данные лишний раз.
В общем, ситуация типа “да вы здесь все молодцы…” ©.
P.S. Если кто случайно не знает прописных истин: надо либо использовать для показа формы и её обработки один и тот же скрипт (тогда редирект не понадобится), либо, если уж по каким-то причинам скриптов два, хранить параметры в сессии на сервере, а клиенту передавать только её идентификатор, да и тот лучше не в URL’е, а в куке.
Оригинал этой записи. Комментировать можно тут или там.
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
На чеке либо 1234 XXXX XXXX 5678 либо ....5678.
no subject
Будучи в Петербурге нашёл билет в .... эээээ, чорт, забыл куда, в какую-то достопримечательность, к нему был приколот нестандартного размера чек, на котором было написано всё, кроме Expire date и CVV. Показал друзьям, они порадовались.
no subject
Я, правда, не в курсе, как за это взъ....ть.
no subject
no subject
no subject
я, честно говоря, не помню чтобы в банкоматных чеках был полный номер у кого, там вроде есть жесткие требования, с посовскими терминалами кажись такого требования нет, ибо тоже пытались пинать то ли на тему перекрестка, то ли на тему живого еще тогда меркадо, что у них на чеках был полный номер карты — банк-экварер послал, виза тоже отписалась … хотя может и пнули их, ибо сейчас полного номера на чеках перекрестка вроде нет …
no subject
no subject
no subject