質問: (int)$_GET["category"]; }else[ die("error"); } としました。 この他にチェックすべき点はありますでょうか。 また上記のコード自体、意味が無いもので別の書き方がありますでしょうか。 よろしくお願いします。
回答: `category=1` の元になっているデータをアプリが持っているのではないでしょうか? DBに「カテゴリーテーブル」があったり、あるいは、PHP のコードで次のような配列が定義されていたり。 ``` $categorys = array( 1 => "あああ", 2 => "いいい", 3 => "ううう", 4 => "えええ", ); ``` であれば、そのデータを用いてチェックすると良いと思います。例えば↑のような配列があるのなら、 ``` if (isset($categorys[$category_no]) === false) { // なにかおかしい } ``` のようにです。 category が「任意の整数」なのであれば別ですが、category という名前から察するに、既知のリストからの選択になっているはずだと思います。 もし、DBに「カテゴリーテーブル」があって、運営者などの操作でその一覧が増減することがあるのであれば(つまり「カテゴリーテーブル」が可変)、利用者がページ上でカテゴリを選択してからそのページをサブミットするまでの間に、カテゴリの数が減ってしまうことを想定して、上記の「なにかおかしい」の部分で表示するメッセージはマイルドなものにしておいたほうが良いかもしれません。 例えば「不正なリクエストです」などとメッセージを表示してしまうと、通常の利用者に(たまたまタイミングが悪かったため)このメッセージが表示されたときに「犯罪者呼ばわりされている」という印象を与えることがあるかもしれません。