我正在构建一个测验网站,在那里我存储了一些变量(回答所需的时间,用户选择哪个答案选项等)在每个问题后的$_SESSION
s中——只有在用户完成测试后,我才会将这些统计数据放入数据库。
我已经实现了一些if
来检查这些$_SESSION
变量是否是数字(is_numeric()
)。此外,我还验证了长度(strlen()
)等
- 但这样做有理由吗
- 或者在存储之前只
real_escape_string()
这些就足够了吗在MySQL中 - 此外,如果会有很多用户,那么这不会给用户带来很大的负担吗服务器
否,因为它们是您自己设置的。
当然,除非你直接从用户输入中推导出它们,在这种情况下,适用于每一位用户输入的规则都是完全相同的。
$_SESSION
变量没有什么特别之处。当你从用户那里收到用户输入时,你需要对它进行消毒——不管你是把它存储在数据库、会话中,还是其他什么地方
正如JPod建议的那样,在执行SQL查询时,始终使用准备好的查询,以减少SQL注入。