PHP filter_strip_low/high允许控制字符进入字符串


PHP filter_strip_low/high allowing control characters into string

嘿,伙计们,你们必须运行它才能看到我在说什么,但我使用下面的代码将低或高控制字符输入到我的字符串中,我建议通过bash终端运行它,因为这就是我看到字形字符的方式。

据我所知,这应该发生吗?这些字符是如何逃离过滤器的?

#!/usr/bin/php
<?php
$i=0; while ($i++ <= 20)
    echo 'STR: ' .filter_var(openssl_random_pseudo_bytes(100), FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH) . "'n";

例如,我不确定你是否能看到字符序列js*w后面的[],但这正是我所说的,我认为它应该与其他高/低一起过滤掉

STR: &#60;|f)/KZ2|36rb2&#60;.9|X3 js*wjZ6Dp-f8R[/O/VY

FILTER_FLAG_STRIP_LOW:剥去具有数值的字符<32.FILTER_FLAG_STRIP_HIGH:剥去具有数字的字符值>127。

ord("[")返回91,ord("]")返回93所以它们不应该被过滤掉