2

https://www.owasp.org/index.php/PHP_Top_5#How_to_Determine_if_you_are_Vulnerable_2リンクのタイトル P2: クロスサイト スクリプティング > How to Protect Against It; 項目 4 と 5 には、次のように書かれています。

  1. 項目 4:フリー テキスト入力は、HTML エンティティを使用した後にのみユーザーに安全に再表示できます
  2. 項目 5: URL 経由でユーザーに送り返される変数は、urlencode() を使用して URL エンコードする必要がありますが、GET 要求の使用は、ナビゲーション以外の目的では推奨されません。

私の質問

Q1

項目4については、それができると明示的に言われていますが、htmlspecialchars()それで十分で効率的であると読んだことを覚えていますhtmlentities()。( の優位性に関するソース リンクの例。Pornel_htmlspecialcharsのコメントを読んでください: PHP サイトで xss 攻撃を回避するためのベスト プラクティスは何ですか) したがって、この OWASP の入力の後で混乱します。my を、MySQL ユーザー入力データを html として画面に出力するときに使用するものに置き換える必要が あります。htmlspecialchars()htmlentities()

Q2

私のフォーム (記事の追加、コメントの追加、管理者への電子メール) では、Post - Redirect - Session Variablesフローを利用しています。GET(私の説明はばかげているかもしれませんが、フローの 3 番目のステップでは を使用しないことを意味します。代わりにGET、変数を使用します。)それでも、変数のどこかでSession使用する必要がありますか? (注: あなたが「はい」だとしても、どうすればよいかわかりません。それは私が勉強する別のトピックです。当面は「はい」または「いいえ」だけを学びたいのですが、なぜこの質問の答えが自分のもちろんHOW部分も定義していただけると大変助かります)よろしくお願い しますurlencode()Session


4

1 に答える 1