在我的网站上我有一个评论部分。我想在将输入存储到数据库之前过滤并验证输入。如果输入中存在任何无效字符,则用户会收到输入无效的通知。
我的问题,不允许使用哪些字符?例如我想避免sql注入
不允许使用标签。我该如何检查?
答案 0 :(得分:2)
如果您正在使用Zend_Db和参数化查询(即:$adapter->insert($tableName, array('param' => 'value'))
),那么它将自动为您排除所有内容。
如果您想进一步验证用户输入,请查看Zend_Validate
和Zend_Filter
另外,如果用“标签”表示HTML标签,我不会对输入的那些做任何事情,但确保你在输出上正确地转义/剥离它们(看看htmlspecialchars()
)
如果您想在输入包含HTML标记时显示错误消息,并假设$comment
是评论正文,您可以尝试:
if(strip_tags($comment) !== $comment) {
// It seems it contained some html tags
}