質問: ".$_GET["id"]; ``` 私が、考えている以外に脆弱性があるのなら教えていただけると幸いです。 よろしくお願いします。
回答: たとえば、このような場合は変数で管理するしかないでしょう。 ``` $flag= some_func(); // 外部から来る値 $dir = $flag ? 'ASC' : 'DESC'; // $flagが何であろうと、$dirには'ASC'か'DESC'しか入らない $sql = "SELECT (中略) ORDER BY column $dir "; ``` このように、スコープ内で「何が渡るかはっきりしている場合」には、変数に分けたからといって脆弱になることはありません。 ただ、一歩関数を越えるようなことになれば、(`private`で呼べる箇所が限られているものならともかく)**どんな呼び出し方をするかわかりません**。文字列以外のものを要求するならタイプヒントで弾いてしまうのも方法としてありですが、文字列に「安全な値だけ渡してください」なんていうインターフェースを作ってしまうことは危険極まりません。