【问题标题】:How to filter and validate user input in Zend Framework如何在 Zend Framework 中过滤和验证用户输入
【发布时间】:2010-08-29 07:36:22
【问题描述】:

在我的网站上,我有一个评论部分。我想在将输入存储到数据库之前对其进行过滤和验证。如果输入中有任何无效字符,用户会收到他的输入无效的通知。

我的问题,哪些字符是不允许的?例如我想避免sql注入

不允许使用标签。如何检查?

【问题讨论】:

    标签: zend-framework zend-form zend-filter


    【解决方案1】:

    如果您使用 Zend_Db 和参数化查询(即:$adapter->insert($tableName, array('param' => 'value'))),那么它将自动为您转义所有内容。

    如果您想进一步验证用户输入,请查看Zend_ValidateZend_Filter

    另外,如果“标签”是指 HTML 标签,我不会对输入的标签做任何事情,但请确保在输出时正确转义/剥离它们(查看htmlspecialchars()

    如果您想在输入包含 HTML 标记时显示错误消息,并假设 $comment 是评论正文,您可以尝试:

    if(strip_tags($comment) !== $comment) {
        // It seems it contained some html tags
    }
    

    【讨论】:

    • 谢谢,我已经在输出中转义了。但我为什么要允许用户输入 html 标签。我希望显示输入无效的错误消息
    • 用一个例子改变了答案,如果它包含 html 标签,如何显示错误消息。我不确定评论的上下文是什么,但允许但转义 html 标签通常是无害的。例如,如果您正在运营一个有关 Web 开发的网站,那么评论者可能会包含 HTML 标记作为示例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-15
    • 1970-01-01
    • 2020-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多