2013-03-14 48 views
0

我有一个大量使用JSON服务的ASP.NET网站。基本结构是:jQuery插件 - > JSON服务 - >服务器端BAL。SSL为Web服务提供什么保护?

但是,这种解决方案显然是不安全的,因为恶意用户可以运行作为小提琴手这样的工具和捕获JSON他们的机器上调用,然后重播这些JSON调用改变参数等

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

我明显对SSL没有多少了解,需要一些帮助。听起来像我的SSL设置不正确,或者能够通过Fiddler看到SSL流量?如果是后者,SSL在我的场景中提供了什么保护?

谢谢。

+1

恩,你有没有考虑在*服务器*上验证数据,而不是仅仅在客户端上? – 2013-03-14 13:48:39

+2

您可以将Fiddler配置为解码SSL(实质上,它通过摆弄证书执行Man-in-the-the-middle攻击)。你的问题不是提琴手允许修改参数。你的问题是你的网络服务没有对​​输入参数进行充分的检查和验证。 – 2013-03-14 13:50:34

+0

我的网络服务执行检查和验证,但这是我目前唯一的“防线”。任何人都可以看到哪些参数被发送到服务器并改变请求会扩大一些不可预见的攻击的可能性。我冲洗希望隐藏请求体,所以至少发现Web服务的结构更加困难。 – user1044169 2013-03-14 13:54:37

回答

0

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

你需要的是一个正确的认证,许可和验证系统。需要检查每个请求的有效性。准备好接收任何形式的请求,包括任何类型的参数,因为用户因为代码中的错误或其他原因而弄乱了参数。如果请求无效,意味着如果某个特定用户不被允许执行某项操作,则拒绝该请求。
这不是您可以实现的一些插件技术,它是您服务的核心设计考虑事项。

0

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

有两种方法可以保护自己免受恶意数据侵害。

  1. 在将其插入不同的格式之前,将所有内容都转义(或等效)。例如使用SQL上准备好的语句,用JSON序列化,而不是字符串糖化等
  2. 认证用户建立JSON和只接受来自这些数据,你相信