サポート » 使い方全般 » nonceは非ログインユーザーでもチェックすべきですか?

  • 解決済 hokahokanikuman

    (@hokahokanikuman)


    ログインユーザー、非ログインユーザー、にかかわらず、投稿できる掲示板を作っています。

    だいたいできてきたところでnonceの必要性を知り、手探りで実装しましたが、これは非ログインユーザーに対しても発行すべきものなのでしょうか?

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • hokahokanikumanさん、こんにちは。

    あくまでも一般的な回答になりますが、nonce は攻撃を防ぐための手法のひとつですから、ある方がよいとは考えられます。

    nonceの必要性を知り

    とおっしゃっているので、ご自身の作られているアプリケーションがそう言った攻撃に対応する必要があるのかどうかではないでしょうか。

    具体的には、例えば非ログインユーザーの投稿データを攻撃者が入手できた場合、同じ内容の投稿を繰り返し投稿し続けるなどの攻撃が可能になるのではないでしょうか。
    ただし、そもそも連続投稿などが不可能なシステムとして構築されていなければ通常の攻撃でも同じことができてしまいますが…

    参考になれば。

    こんにちは

    nonce を使うことが望ましいと思います。

    ・nonce が含まれているか
    ・nonce の値は正しいか
    ・nonce の期限が切れていないか

    をチェックできますので、bot による投稿やサイト外からの攻撃を防ぐ助けになると思います。

    ただ、非ログインでもログインでも投稿できるという特性から、nonce が上手く動作しないかもしれません。

    その期間では、同じユーザーの同じコンテキストに対して、同じ nonce が生成されます。

    という特性から、非ログイン状態でアクセスした際に生成された nonce が、ログイン後も使われます。
    ログイン状態で投稿すると、サーバー側ではログイン状態の nonce としてチェックされ、正しくない nonce と判断されます。
    参考)https://wpdocs.osdn.jp/WordPress_Nonce

    その解決策もあるようですが、私は試したことがありません。
    また、これが正しい方法なのかも確認していません。
    https://wordpress.stackexchange.com/questions/333367/handling-nonces-for-actions-from-guests-to-logged-in-users

    今思いつきましたが、ログイン状態と非ログイン状態で生成・verify する nonce の名前を変えたらいいかもしれませんね。

    これの正しい対処方法をご存知の方、教えて下さい・・・

    スレッド開始 hokahokanikuman

    (@hokahokanikuman)

    @shokun0803
    具体例のおかげで非ログインユーザーについても必要性が理解できました
    たしかにnonceさえあれば本人だけになりますね
    ご回答どうもありがとうございます!

    スレッド開始 hokahokanikuman

    (@hokahokanikuman)

    @munyagu
    そういえばbotを失念していました!非ログインユーザーについても絶対に必要ですね。

    具体的にnonceで何をチェックすべきかもよくわかっていませんでしたので、その辺りもありがとうございます

    さらに想定される問題と、なんと解決案まで至れり尽くせりで…
    どうもありがとうございます!

    ログイン状態によって発行nonceを分ける解決案につきましては、実装できましたらこちらのフォームにてまたご報告させて頂きます。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • このトピックに返信するにはログインが必要です。