【问题标题】:Sanitising web urls for firestore清理 Firestore 的网址
【发布时间】:2021-01-12 04:29:49
【问题描述】:

我的 Flutter 应用中有很多输入,用户可以在其中添加文本。数据被发送到云功能,如果有效,则插入到 Firestore 文档中。我最近遇到了数据清理问题,并开始怀疑我是否应该在我的云函数中执行此操作。

我已经阅读了节点 js 函数 escape() 可以做到这一点,但是它似乎破坏了用户可以插入的某些 webURLS。

为firestore转义数据然后在flutter应用程序上取消转义似乎没有意义,这样他们就可以真正点击链接。

转义所有数据(例如 cmets 等)是否重要?如果是,应该对麻烦的 URL 链接采取什么方法。

(有时我可能会在html页面中查看用户输入数据。如果这也可能导致XSS问题,请您告诉我除了在显示前转义之外的解决方法)

谢谢大家

【问题讨论】:

    标签: html node.js flutter google-cloud-firestore google-cloud-functions


    【解决方案1】:

    我最近遇到了数据清理问题,并开始怀疑我是否应该在我的云功能中执行此操作。

    在编写后端代码(例如使用 Cloud Functions)时,唯一安全的做法是永远不要信任来自客户端的数据。应检查或验证任何输入,以避免对恶意数据造成危险。

    为firestore转义数据然后在flutter应用程序上取消转义似乎没有意义,这样他们就可以真正点击链接。

    转义是遵循协议的必要部分。 HTTP 协议规定了 URL 和请求正文中可以和不可以出现的字符。除此之外的任何事情,数据都可能被拒绝,或者完全失败。

    转义所有数据(例如 cmets 等)是否重要?如果是,应该对麻烦的 URL 链接采取什么方法。

    这不仅重要,而且是必需的。

    如果输入数据“有问题”,只需拒绝它,因为它可能是恶意的。

    【讨论】:

    • 这是有道理的道格,我会确保为我的所有输入添加检查。你知道我应该如何验证 FCM 令牌吗?他们似乎只有连字符?字母、数字和连字符的正则表达式会中断吗?
    • 如果您有关于 FCM 代币的新问题,请在新问题中单独提出。
    猜你喜欢
    • 2015-11-09
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-31
    • 2016-12-06
    • 2021-11-24
    • 1970-01-01
    相关资源
    最近更新 更多