【问题标题】:WCF/Serverside - Validate string for Javascript/HTML elements [duplicate]WCF/Serverside - 验证 Javascript/HTML 元素的字符串 [重复]
【发布时间】:2014-06-09 18:11:16
【问题描述】:

我目前正在使用我们的 WCF REST 服务,在某些情况下,用户可能会将 Javascript/HTML 直接插入我们的数据库。这是不可接受的,因为我们不希望我们的内部和外部客户端发生 XSS 攻击。我们的服务还没有上线,所以还没有风险。

我已经阅读了几种方法来实施防止 Web 应用程序 XSS 的方法,但我还没有找到任何 WCF REST 服务的结论性解决方案。

我想知道是否存在可在 WCF 中使用的库,以在将传入数据保存到数据库之前验证来自传入数据的字符串。类似于 ASP.NET 在每次提交页面时使用它的 ValidateRequest 方法。

是否存在可以在 WCF 中使用的此类库或方法?

谢谢

【问题讨论】:

  • HTML 对输入字符串进行编码应该可以防止 XSS 攻击。类似的问题。 stackoverflow.com/questions/8475306/…
  • 编辑。 NVM,类似的问题回答了我需要知道的一切!谢谢。你可以把它作为答案,我会标记它:)
  • 关于这个问题已经提供了一些很好的解释。必读。

标签: c# javascript asp.net wcf xss


【解决方案1】:

我建议您不要在 WCF 中检查它,而是在 Web 应用程序级别本身检查它(仅在客户端)。您必须有一些文本框将接受来自最终用户的数据,然后您将该数据传递给 WCF。因此,通过 javascript,您只能在客户端进行验证(使用 RegEx)。

接受除尖括号外的所有字符的正则表达式是 "^[\s]*[a-z]+[\(|a-z\-\a-z|0-9|,|.| \)]*[a-z| ]*$"

在客户端检查将减少网络行程并提高性能。但是,如果在您的用例中您无法在客户端进行验证,那么您也可以在服务器端执行相同的操作。在这种情况下,您必须将该验证放在 WCF 中。如果您的字符串有尖括号 则在这种情况下避免将该值插入 DB。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-26
    • 2022-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多