我应该在PHP中验证/清理$ _SESSION变量吗?

时间:2013-12-08 18:48:45

标签: php mysql session

我正在建立一个测验网站,我存储了一些变量 (每个问题后$_SESSION s中的回答时间,用户选择的答案选项等等 - 我只有在用户完成测验后才将这些统计数据放入数据库中。

我已实施了一些if来检查这些$_SESSION变量是否为数字(is_numeric())。我也验证了长度(strlen())等等。

  • 但是有理由这样做吗?
  • 或者仅仅real_escape_string()存储它们之前就足够了 在MySQL?
  • 此外,如果会有很多用户,那么就不会有太大的负担 服务器?

1 个答案:

答案 0 :(得分:9)

不,因为你自己设置它们。

除非你直接从用户输入中推断出它们,否则适用于每一位用户输入的完全相同的规则都适用。

$_SESSION变量没有什么特别之处。当您从用户收到用户输入时,无论是将其存储在数据库,会话等中,都需要清理用户输入。

像JPod建议的那样 - 在执行SQL查询时 - 始终使用准备好的查询来缓解SQL注入。