在Kohana prepared statement documentation上声明
尽管所有参数都已转义以防止SQL注入,但验证/清理输入仍然是一个好主意。
从我在准备好的语句中读到的内容,我的印象是绑定参数阻止了SQL注入。如果不是这种情况,我应该在绑定变量之前使用什么清理/转义方法?
答案 0 :(得分:1)
我认为当他们说“验证/消毒仍然是一个好主意”时,他们的意思是使用Valid class或/和Validation类...确保在数据库中插入正确的数据。
有关Kohana验证的更多信息:http://kohanaframework.org/3.2/guide/kohana/security/validation
更新:
您还应该查看XSS:http://kohanaframework.org/3.2/guide/kohana/security/xss
答案 1 :(得分:1)
Kohana为不同的数据库类型提供了数据库抽象。并非所有具体数据库都可能已准备好语句,因此它们将被模拟。某些特定数据库的本机转义函数甚至可能被破坏。
你永远不知道,不仅要有一层安全保障,总是好的。
另一层是您的脚本实际上接收有意义的数据。例如。例如,一个8兆字节的名字字符串。无论数据库使用它做什么都没有意义。