【问题标题】:What protections does SSL provide for a web service?SSL 为 Web 服务提供哪些保护?
【发布时间】:2013-03-02 21:49:22
【问题描述】:

我有一个大量使用 JSON 服务的 ASP.NET 网站。基本结构是:jQuery Plugins -> JSON Service -> Server-Side BAL。

但是,这种解决方案显然不安全,因为恶意用户可以运行诸如 Fiddler 之类的工具并在他们的机器上捕获 JSON 调用,然后重放这些 JSON 调用更改参数等。

如果我将 Web 服务文件夹放在 SSL 下,它会给我什么保护?我尝试将整个站点置于 SSL 下,但仍在运行 Fiddler,我可以看到转至 HTTPS 协议的明文消息,并且我可以使用相同或更改的参数重播来自 Fiddler 的这些消息。

我显然对 SSL 知之甚少,需要一些帮助。听起来我的 SSL 设置不正确,还是可以通过 Fiddler 查看 SSL 流量?如果是后者,SSL 在我的场景中提供什么保护?

谢谢。

【问题讨论】:

  • 嗯,您是否考虑过在服务器上验证数据,而不仅仅是在客户端上验证数据?
  • 您可以配置 Fiddler 来解码 SSL(本质上,它通过摆弄证书来执行中间人攻击)。您的问题不是 Fiddler 允许修改参数。您的问题是您的网络服务没有对​​输入参数执行足够的检查和验证。
  • 我的 Web 服务执行检查和验证,但这是我目前拥有的唯一“防线”。任何人都可以看到发送到服务器的参数并更改请求的事实扩大了某些不可预见的攻击的可能性。我洗希望隐藏请求体,所以至少更难发现网络服务的结构。
  • @user1044169 永远不可能对发送通信的客户端隐藏传出通信。如果您有专有客户端,例如本地桌面应用程序,它可以通过加密变得更加困难。但即使这样也是可以自省的,因为加密代码是在客户端上运行的。在 HTTP/Javascript 等开放的标准化系统中隐藏传出请求的结构几乎是不可能的。

标签: javascript json ssl https fiddler


【解决方案1】:

SSL 仅加密传输。这意味着第三方无法窃听客户端和服务器之间的数据交换。它不会向服务器或服务本身添加任何安全功能。

您需要的是适当的身份验证、许可和验证系统。每个请求都需要检查其有效性。准备好接收带有任何类型参数的任何类型的请求,无论是因为用户摆弄了参数,还是因为代码中的错误或其他原因。如果请求无效,即不允许特定用户做某事,则拒绝该请求。
这不是您可以实施的插件技术,而是您服务的核心设计考虑因素。

【讨论】:

    【解决方案2】:

    如果 Bob 在他的网站上实施 SSL,那么当 Alice 使用该网站时,Mallory 将无法拦截数据或在运行中更改数据。 SSL 将 Alice 的浏览器和 Bob 的服务器之间的消息保密。它不会对 Alice 和 Alice 的浏览器之间的消息保密。

    您可以采取两种方法来保护自己免受恶意数据的侵害。

    1. 在将所有内容插入其他格式之前转义(或等效)所有内容。例如在 SQL 上使用准备好的语句,使用 JSON 序列化程序而不是字符串混搭构建 JSON,等等。
    2. 对用户进行身份验证并仅接受来自您信任的用户的数据

    【讨论】:

      猜你喜欢
      • 2012-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-12
      相关资源
      最近更新 更多