2010-08-18 6 views
2

У меня есть форма, которая отправляется на внешний API. Существует параметр customer_token, который передается как поле ввода. Он используется для аутентификации API, и каждому клиенту назначается один токен. Поле ввода отображается в Firebug Firefox (хотя это скрытое поле).Лучший способ скрыть поле ввода формы от доступа с помощью firebug?

Как скрыть?

Опции Использование JavaScript, как я первоначально думал

Я думаю, что с помощью JavaScript для создания этого поля ввода во время выполнения перед отправкой формы и сразу удаление поля будет работать, но по-прежнему будет отображаться поле на мгновение. Таким образом, даже если человек не может вручную получить его, я боюсь, что искатель или паук (я не знаю, какой именно термин, но какой-то автоматизированный сценарий) может получить токен клиента. Есть ли лучшее решение для этого? После отправки формы отображается одна и та же форма.

Используя одноразовый маркер концепции, как предложено IKKE

Я не уверен, как это будет работать? API требует правильного значения токена клиента для обработки любого запроса. Таким образом, даже для создания одноразового токена и возврата необходимо отправить запрос с токеном клиента. Таким образом, каждый может увидеть ценность токена клиента, и они также могут отправить запрос на получение одноразового токена и использовать его. Итак, как он решает проблему?

Устранены Проверить How to post form to my server and then to API, instead of posting directly(for security reasons)? Спасибо, Sandeepan

+1

Пользователь все еще может контролировать все HTTP-запросы, например, проверить вкладку «net» Firebugs, чтобы значение было видимым. – chelmertz

+1

Как сказано, нет «лучшего способа». На самом деле, вообще нет способа. Даже простая строка JavaScript в адресной строке может получить это значение. И у браузеров, таких как Chrome, есть инструменты, похожие на Firebug, встроенные, поэтому таргетинг только на эту проблему - плохая идея ... :-) – PhiLho

ответ

5

Это не возможно. Firebug просто считывает DOM в фактическом состоянии, поэтому, даже если он добавлен на более позднем этапе, он все равно может быть восстановлен.

Этот способ безопасности называется Безопасность через неизвестность и является видом не-безопасности. Вам придется решить его по-другому, например, позволить серверу выполнить запрос вместо этого.

Вы разрешаете пользователю отправить форму на сервер. Затем с помощью curl вы вызываете веб-сервис с правильным кодом пользователя.

+0

Как будет работать одноразовый токен? Если вы можете немного объяснить. API требует правильного значения токена клиента для обработки любого запроса. Таким образом, даже для создания одноразового токена и возврата необходимо отправить запрос с токеном клиента. Таким образом, каждый может увидеть ценность токена клиента, и они также могут отправить запрос на получение одноразового токена и использовать его. Итак, как он решает проблему? –

+0

Является ли запрос напрямую отправляться на api или сначала на ваш сервер или что-то в этом роде? – Ikke

+0

Запрос отправляется непосредственно в API. Как следовать методу отправки запроса сначала на мой сервер, а затем в API? Отправка запроса на мой сервер в порядке. Но как отправить запрос с моего сервера на API? Пожалуйста, объясните мне, я думаю, что это решение. Thanks, Sandeepan –

0

Я не думаю, что это возможно, я боюсь.

Firebug по-прежнему будет видеть элемент, если он вставлен через Javascript, поскольку он смотрит дерево DOM. Если этот ввод предоставляет уязвимость безопасности, то это означает, что ваш серверный код выполняет проверку/исправление.

Подробнее об API может помочь кому-то ответить на этот вопрос более подробно.

Я надеюсь, что это помогает

+0

API нуждается в токене клиента, который должен быть передан как поле ввода –

+0

Является ли токен клиента одинаковым?И откуда берется токен? – Rowan

+0

Да, в настоящее время это то же самое. Это некоторый хэш доменного имени клиента –