我正在构建一个测验站点,在$_SESSION
每个问题之后我存储一些变量(回答时间,用户选择哪个答案选项等等)- 我只是在用户完成后将这些统计信息放入数据库中测验.
我已经实现了一些if
来检查这些$_SESSION
变量是否是数字(is_numeric()
).我也验证了长度(strlen()
)等.
但是有理由这样做吗?
或者仅仅将real_escape_string()
它们存储在MySQL之前就足够了?
此外,如果会有很多用户,那么这不会给服务器带来很大的负担吗?
Benjamin Gru.. 8
不,因为你自己设置它们.
除非您直接从用户输入中推断出它们,在这种情况下,适用于每一位用户输入的完全相同的规则适用.
$_SESSION
变量没有什么特别之处.当您从用户收到用户输入时,无论是将其存储在数据库,会话等中,都需要清理用户输入.
就像JPod建议的那样 - 在执行SQL查询时 - 总是使用准备好的查询来缓解SQL注入.