gpt4 book ai didi

php - 从用户输入中获取字母数字字符串的安全方法? (没有 preg_replace)

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:04:45 24 4
gpt4 key购买 nike

我读过许多关于如何将字符串过滤为“字母数字”的其他问题,但所有这些问题都建议使用 preg_replace() 方法。

根据 OWASP :

Function preg_replace() should not be used with unsanitised user input, because the payload will be eval()’ed13.

preg_replace("/.*/e","system(’echo /etc/passwd’)");

Reflection also could have code injection flaws. Refer to the appropriate reflection documentations, since it is an advanced topic.

那么现在我该如何在没有 preg_replace 的情况下实现这一点?

$result = preg_replace("/[^a-zA-Z0-9]+/", "", $_POST['data']);
// Notice the $_POST['data']

最佳答案

使用preg_replace() 过滤用户输入没有问题。您引用的 OWASP 建议是在谈论模式,而不是用户输入本身。

但是,我想说使用过滤输入本身就是一个问题 - 您应该改为验证。同样,不要接受无效输入。

关于php - 从用户输入中获取字母数字字符串的安全方法? (没有 preg_replace),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40556016/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com