I have 8 input type text. name=favour_01
我做那8个input
进入一个array
and serialize
it
i use PDO
将其保存到数据库中。
比反序列化它的输出
$favour[]='apple'; $favour[]='banana';
$favours = serialize($favours);
prepare(...
$food->bindValue(':favours', $favours, PDO::PARAM_STR);
这安全吗?我读过序列化输入很容易受到攻击。
我没有为此使用任何课程,这是我读过的一篇文章https://www.owasp.org/index.php/PHP_Object_Injection https://www.owasp.org/index.php/PHP_Object_Injection
仅当序列化的数据包含敏感信息时,序列化数据才会存在安全风险。风险在于您序列化包含密码的数据,然后将序列化的表单存储在不安全的地方。
反序列化如果您尝试对从不受信任的来源获取的数据进行反序列化,则数据会存在安全风险。反序列化过程可以实例化对象,因此数据输入可能会执行您意想不到的操作。
从安全角度来看,序列化一个简单的值数组以将其绑定到 SQL 参数是可以的,但请记住,您将无法在数据库中有效地搜索该序列化数组中的特定值。基本上你的数据库变成了一个黑匣子:你可以将整个数组填充到其中,然后取出整个数组进行反序列化,但是你无法使用 SQL 轻松读取或写入数组的单个元素。
更好的做法是创建一个子表并在该表中每行存储一个元素。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)