【问题标题】:does storing image tags in sql database pose security risk?在 sql 数据库中存储图像标签会带来安全风险吗?
【发布时间】:2014-11-24 12:24:45
【问题描述】:

我想知道在没有任何验证的情况下将图像标签存储在内部是否存在安全风险。下面的一位评论者表示,由于内联 javascript,它可能是一个安全威胁。同样对于我的情况,另一种解决方案可能是删除除具有“smilyImage”类的图像之外的所有图像。换句话说,删除所有像这样的图像:<img src="whatever.png"> 并保留像这样的图像:<img class="smilyImage" src="smiley.png">

【问题讨论】:

    标签: php sql database image web


    【解决方案1】:

    视情况而定。如果您让用户提交图片标签,他们可以例如添加一个 JavaScript onClick 事件,这可能会导致一些问题(如果您没有转义返回值)。

    所有传递到数据库的数据,如果您不知道它到底是什么,可能存在安全风险。

    【讨论】:

    • true 我没有想到内联 javascript。应该有它。有什么办法可以删除那些内联脚本?
    • 什么是“转义返回值”?尝试用谷歌搜索它。
    • @user3234267,参见owasp.org/index.php/Cross-site_Scripting_(XSS)。事实上,只需将自己停在 OWASP.org 并阅读有关安全威胁及其补救措施的信息。
    • “转义返回值”是我说“在 SQL 查询中转义特殊字符”的糟糕方式。但正如 Dwight 所说,我只会存储图像的源 URL。这样更简单、更安全。
    【解决方案2】:

    只要您的 SQL 查询被正确转义(或者更好的是,您使用属性绑定),那么就不会有安全风险(您只是有效地将文本存储在列中)。

    但是,如果您的查询不安全,您可能会面临 SQL 注入。

    我不会在数据库中存储图像标签,而只是图像源的 URL(很容易验证)。

    【讨论】:

    • 什么是属性绑定?从来没有听说过。我试着用谷歌搜索它没有得到太多。
    • @user3234267,通常称为带参数的预准备查询。见stackoverflow.com/questions/60174/…
    • 对于我的情况,我想我可以给我想要保留的图像并剥离所有其他图像。
    猜你喜欢
    • 2010-12-28
    • 2016-07-02
    • 2010-10-26
    • 1970-01-01
    • 1970-01-01
    • 2010-12-22
    • 2020-05-29
    • 2012-08-19
    • 1970-01-01
    相关资源
    最近更新 更多