如果您的应用程序没有使用数据库,但您在代码中'echo'或使用$_POST或$_GET变量,我们需要转义它们吗?
:
if(isset($_GET['test']){
echo $_GET['test'];
}
或
function math(){
if(isset($_GET['number'],$_GET['numberr']){
return $_GET['number']*$_GET['numberr'];
}
return null;
}
即使使用数据库,也需要在打印前转义或清除它们。有些人可能会偷偷地加入一些乱七八糟的HTML,比如<b>
会让整个页面变粗,或者<script>alert('hello');</script>
会运行Javascript。
echo htmlspecialchars($_GET['test']);
这将取代你所有的<与<
和>与>
,使HTML将被视为文本而不是HTML,不会弄乱你的页面。与CC_3和>
您应该转义它们。此外,您应该使用正则表达式来限制变量内容,并防止"意外"字符。
编辑:很抱歉把这个作为一个答案,我目前不允许评论问题。