我有这个脚本
<?php $number = %value%; ?>
Run Code Online (Sandbox Code Playgroud)
%value%标记将被用户输入的DB上的值替换.
我担心的是有人输入的内容如下:
1; echo phpinfo()
Run Code Online (Sandbox Code Playgroud)
替换的结果将是:
<?php $number = 1; echo phpinfo(); ?>
Run Code Online (Sandbox Code Playgroud)
这显然是一种安全风险.
是否有一个函数来逃避php脚本字符或我可以使用的东西?
提前致谢.
这是我正在研究的CMS上的工具,通常工具生成添加到某些PHP文件的HTML代码.
在这种情况下,此工具从RSS通道生成HTML结构.我们要求用户输入RSS URL和要显示的提要数,我们将这些值替换为PHP脚本,并使用它们获取提要并以HTML结构显示它们.
像这样:
<?php
$url = "URL"; //comes from DB
$number = N; //comes from DB
$feeds = getFeeds($url, $number);
...
?>
Run Code Online (Sandbox Code Playgroud)
cod*_*gar 10
你上面描述的机制是有缺陷的.PHP就是这样不行.不会执行任何用户输入(或更准确地说,由PHP解释),除非:
eval()电话运行它你应该担心的是SQL注入,这是一个非常不同的东西.
如果你指的是一个类似于子弹#2的场景,你很可能从设计角度做一些非常错误的事情,你应该重新思考你的方法.
| 归档时间: |
|
| 查看次数: |
466 次 |
| 最近记录: |