-2

サニタイズを目的として、フォームで送信ボタンを押した後にこのコードが実行されるとします。

<?php
$yourname = check_input(filter_input(INPUT_POST, 'yourname', FILTER_SANITIZE_STRING));
$email = check_input(filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL));
$likeit = check_input(filter_input(INPUT_POST, 'likeit', FILTER_SANITIZE_STRING));
$comments = check_input(filter_input(INPUT_POST, 'comments', FILTER_SANITIZE_STRING));

function check_input($data) {
    $data = trim($data) . stripslashes($data) . htmlspecialchars($data);
    return $data;
}
?>

filter_input 関数が適用されていることを考慮すると、この場合 check_input($data) 関数は冗長ですか?

4

1 に答える 1

3

関数の現在のコードcheck_inputはかなり役に立ちません: 入力を 3 回連結して戻しますが、異なるフィルターが適用されます。

function check_input($data) {
    $data = trim($data) . stripslashes($data) . htmlspecialchars($data);
    return $data;
}

についてfilter_input():使用FILTER_SANITIZE_STRINGするだけで十分です。ドキュメントから:

タグを削除します。必要に応じて、特殊文字を削除またはエンコードします。

これは基本的に、独自の関数で意図したものです。


SQL インジェクション攻撃に注意することを忘れないでください。プリペアド ステートメントを意図したとおりに使用することで、安全を確保できます。

于 2018-03-03T18:51:37.893 に答える