安全地接受和显示特殊字符


Accepting and display special characters safely

我知道这句话以前说过,很可能是重复的,但我很难整合我找到的所有信息。

我有存储信息的输入框。我想允许用户输入他们想要的任何内容,并将其显示出来。但是,如果它恰好是类似<?php die(); ?>的东西,我显然不希望它执行。

我知道有类似htmlspecialchars()的东西,但是,如果用户键入类似<b>的东西,它将显示&lt;b&gt;

有办法绕过这个吗?

<?php
$string = '<?php echo "aaa;"?><b>sss</b>';
print "before: ". htmlspecialchars($string). "<br>";

print "after: ". cleanInput($string);
function cleanInput($input) {
    $output = strip_tags($input, '<p><a><b><div>');
    return htmlspecialchars($output);
}

其中CCD_ 5是可允许的标签。这很好,因此,您只能设置要允许的标记。这也将剥离<script>和其他标签

阅读:http://php.net/strip_tags