如果你没有在你的应用程序中使用数据库,但你在代码中'回显'或使用$ _POST或$ _GET变量,我们是否需要逃避它们?
像:
if(isset($_GET['test']){
echo $_GET['test'];
}
或
function math(){
if(isset($_GET['number'],$_GET['numberr']){
return $_GET['number']*$_GET['numberr'];
}
return null;
}
答案 0 :(得分:3)
即使您使用数据库,也需要在打印前对其进行转义或清理。有人可能会像<b>
一样偷偷摸摸地使你的整个页面变得粗体,或者<script>alert('hello');</script>
会运行Javascript。
echo htmlspecialchars($_GET['test']);
这将取代你所有的&lt;与<
和&gt;使用>
,以便将HTML视为文本而不是HTML,并且不会弄乱您的网页。
答案 1 :(得分:0)
你应该逃避它们。此外,您应该使用regual表达式来限制变量内容,并防止&#34;意外&#34;字符。
编辑:讽刺发布此答案,我目前不允许对问题发表评论。