我有这样一个页面.用户将URL写入表单并提交.提交URL后,我将该页面与CURL连接,搜索字符串.如果找到该字符串,则会将URL添加到我们的数据库中.如果不是,则给用户带来错误.
我用htmlspecialchars()清理URL也是一个正则表达式,允许AZ,1-9,:/ - .符号.我还使用htmlspecialchars()清理从其他网站检索到的内容.
我的问题是,他们可以输入像这样的网址; www.evilwebsite.com/shell.exe或shell.txt
PHP会运行它,还是只是寻找HTML输出?它是否安全,如果没有,我该怎么办?
谢谢.
PS.allow_url_fopen已禁用.这就是我使用curl的原因.
我不明白为什么htmlspecialchars或者在这里需要正则表达式,你不需要那些.此外,PHP无法"自动"解析使用cURL检索的内容.所以是的,它是保存(除非你做eval输出之类的东西).
但是,在稍后处理检索到的内容时,请注意输入是用户提供的,需要相应地进行处理.