我是否需要逃脱/消毒以下内容?
$_SERVER['HTTP_USER_AGENT']
PHP脚本(未插入
数据库或显示给用户),用于
例如:
if ($_SERVER['HTTP_USER_AGENT']==$xyz) {
echo "Congrats, you are using XYZ browser";
} else {
echo "You are not using XYZ browser.";
}
$_SERVER['HTTP_USER_AGENT']
什么时候
作为会话变量放置,用于
例如:
$_SESSION['userAgent']=$_SERVER['HTTP_USER_AGENT']
任何将要散列的东西, 例如:
hash('sha512',$randomDataPostedByUser)
发往电子邮件正文的用户输入 (换句话说,我已经服用了 照顾电子邮件标题注入)。
如果上述任何一项需要进行排除/消毒,每种情况的最佳方法是什么?
答案 0 :(得分:4)
不,您显示的任何示例都不需要卫生设施,邮件正文示例的以下非常罕见的例外情况如下:
(仅限Windows)当PHP直接与SMTP服务器通信时,如果在行的开头找到句号,则会将其删除。要反作用,请用双点替换这些事件。
但是,您可能需要稍后清理会话变量,具体取决于您要对其执行的操作。
其他说明:
您的第一个示例似乎没有意义,因为用户代理字符串变化很大。您必须使用strstr()
或正则表达式来匹配用户代理。
如果您正在进行比较,将用户代理存储在会话变量中可能不是一个好主意 - 只需在需要时将其从$ _SERVER数组中拉出来。