如果您的应用程序没有使用数据库,但您在代码中“回显”或使用了 $_POST 或 $_GET 变量,我们是否需要对它们进行转义?
喜欢:
if(isset($_GET['test']){
echo $_GET['test'];
}
或
function math(){
if(isset($_GET['number'],$_GET['numberr']){
return $_GET['number']*$_GET['numberr'];
}
return null;
}
最佳答案
即使您使用数据库,您也需要在打印前对它们进行转义或清理。有人可能会像 <b>
那样潜入杂散的 HTML这将使您的整个页面变为粗体,或 <script>alert('hello');</script>
将运行 Javascript。
echo htmlspecialchars($_GET['test']);
这会将您所有的 < 替换为 <
和 > 与 >
这样 HTML 将被视为文本而不是 HTML,并且不会弄乱您的页面。
关于php - 没有数据库的 $_POST 和 $_GET 变量安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22365534/