gpt4 book ai didi

php - 正则表达式对于用户提供的文件名是安全的 - PHP

转载 作者:搜寻专家 更新时间:2023-10-31 22:05:32 25 4
gpt4 key购买 nike

我知道黄金法则,永远不要相信用户提供的文件名。不过我想打破这个规则。下面的方案有没有不安全的地方?

   $name = $_POST['name'];
$id = intval($_GET['id']);

$sanitized_name = preg_replace('/[^0-9a-zA-Z]/','',$name);

$fp = fopen("/path/to/".$id."/".$sanitized_name.".jpg",'w');

如果我用 '' 替换不是 0-9 或 a-z 或 A-Z 的所有内容,那么任何人都可以注入(inject) '.' 的变化绝对为 0%创建自己的扩展(与 NULL 字节的组合)或遍历目录。这看起来很安全。我只是想通过 SO 来运行它。

此外,由于 ID 被强制为 int,任何时髦的东西都会简单地变成 0。

最佳答案

如果安全是指用户不能强制上传到另一个文件夹或另一个扩展,是的,这很好。

此外,为了使文件名“更独特”,您可以在文件名。

关于php - 正则表达式对于用户提供的文件名是安全的 - PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19255658/

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