filter_inputに文字列はないのでしょうか?
現状で'a'か'b'の値をPOSTで得て、次のようにしています
php
1$alphabet = isset($_POST['alphabet']) ? $_POST['alphabet'] : false; 2if ( $alphabet !== 'a' && $alphabet !== 'b' ) { 3 die('alphabetが不正です'); 4} else { 5 // $alphabetを使ってデータベースから値を取得する処理をここに書く 6}
これでは危険らしくfilter_inputを使うべきと知りまして、マニュアルを見るといくつかオプションがあったのですが、
マニュアル
https://www.php.net/manual/ja/filter.filters.validate.php
上記マニュアルのどこにも文字列のバリデーションがありません。
数値ならFILTER_VALIDATE_INTだったりメールならFILTER_VALIDATE_EMAILだったりとあるのに、文字列の場合はどうしたらよろしいでしょうか?
どのような「危険」を想定していますか?
どんな危険があるとか知らないレベルです…
ほとんどのセキュリティ対策は、想定される特定の危険と対応するものですので、想定がなければ考えることはできません。
えっと、'a'|'b' のみ許可としたいのですが、危険を想定しなければなりませんか?
例えば家に鍵をつけるとき「鍵を持つものだけ許可」と思うのが通常で、「泥棒が入るかもしれない、近所の子供が勝手に入るかもしれないetc」などは想定しないと思いますが、この考えはプログラミングにおいては間違っているのでしょうか?
> 危険を想定しなければなりませんか?
「これでは危険らしく」と書いたのはuchiwaさん自身ですよね?
えっと、そうですけど…
普通家に鍵をつけるとき「この近所は危険らしいから鍵をつけておいた方がいい」って思いませんか?
そこで鍵屋さんに行ったら「どんな危険があるか想定してこい」と言われましても、「とりあえず鍵かけたいんですけど」ってなると思うのですが…
何がおかしいのかわからないです。
> 何がおかしいのかわからないです。
玄関の鍵は、「家に不適切に侵入される」という1種類の脅威への対策だということが明らかですが、コンピューターセキュリティ上の脅威は何通りも考えうるものです。
ある条件では「必要な機能」が、別な条件では「対策しなければならない脅威」となることすらありえます。
> どのような「危険」を想定していますか?
これ、ちゃんと意識した方が良いですよ。
参考:https://teratail.com/questions/63786
えっと、コンピューターセキュリティ上の脅威ですか…全然わからないですね…
te2jiさんリンクありがとうございます。参考にさせていただきます。
回答4件
あなたの回答
tips
プレビュー