FireBugを使用してフォーム入力フィールドにアクセスされるのを非表示にする最良の方法は?
-
29-09-2019 - |
質問
外部APIに投稿されたフォームがあります。入力フィールドとして渡されるcustomer_tokenというパラメーターがあります。 APIによる認証に使用され、すべての顧客に1つのトークンが割り当てられます。入力フィールドは、FirefoxのFirebugに表示されます(隠されたフィールドですが)。
どうすれば隠すことができますか?
オプション 私が最初に考えたようにJavaScriptを使用します
JavaScriptを使用して、フォームを送信する前に実行時にその入力フィールドを作成し、すぐにフィールドを削除すると機能しますが、それでもフィールドは瞬間的に表示されます。したがって、たとえ人が手動でそれを手に入れることができなくても、クローラーやクモ(正確な用語はわかりませんが、自動化されたスクリプト)が顧客トークンを取得する可能性があることを恐れています。これに対するより良い解決策はありますか?フォームの提出後、同じフォームが表示されたままになります。
Ikkeが提案した1回限りのトークンコンセプトを使用します
どのように機能するのかわかりませんか? APIには、リクエストを処理するために正しい顧客トークン値が必要です。したがって、1回限りのトークンを生成して返すためであっても、顧客トークンのリクエストを送信する必要があります。このようにして、誰でも私の顧客トークンの価値を見ることができ、彼らはまた、1回限りのトークンを取得してそれを使用するリクエストを送信することができます。それで、それはどのように問題を解決しますか?
解決しました小切手 (セキュリティ上の理由から)直接投稿する代わりに、サーバーにフォームを投稿してからAPIに投稿する方法は?ありがとう、サンディパン
解決
これは いいえ 可能。 Firebugは実際の状態のDOMを読み取るだけなので、後の段階で追加されても、検索することができます。
このセキュリティ方法は呼び出されます あいまいさによるセキュリティ そして、一種の非セキュリティです。サーバーに代わりにリクエストを実行させるなど、別の方法で解決する必要があります。
ユーザーにフォームをサーバーに送信させます。次に カール, 、正しいユーザーコードでWebサービスに電話をかけます。
他のヒント
これが可能だと思います。
Firebugは、domツリーを監視するため、JavaScriptを介して挿入されている場合、要素がまだ表示されます。この入力がセキュリティの脆弱性を公開する場合、それを検証/修正するのはサーバー側のコードの仕事です。
APIの詳細は、誰かがこの質問にもっと詳細に答えるのに役立つかもしれません。
これが役立つことを願っています