【问题标题】:Heavy use of jQuery vulnerable to hackers? [closed]大量使用jQuery易受黑客攻击? [关闭]
【发布时间】:2016-01-14 15:37:24
【问题描述】:

我有一个网站,它处理各种 ajax 请求,以各种方式操作 DOM,并在页面上存储一些(有限的)用户数据。一切运作良好。

但是,我越来越担心,由于网站的大部分代码都可以在客户端查看,因此我很容易受到黑客攻击。我能做些什么来探索这个话题吗? “雇佣黑客?”在线清单?绝对要避免的事情?

【问题讨论】:

  • “越来越担心由于网站的大部分代码在客户端可见,我很容易受到攻击” ? “易受伤害”的是什么?
  • 我会非常乐意查看您的网站并为您破解 :)
  • @user111222333 提示:您也必须在服务器端进行所有类型的验证,因此用户输入始终是您想要的。
  • 这类似于开源软件比专有软件更容易受到黑客攻击的错误观念。因为黑客可以看到代码。您的代码要么安全,要么不安全。教训:无论人们是否可以看到它是如何实现的,都要确保您的代码安全。

标签: javascript c# jquery


【解决方案1】:

只要您适当地设计您的网站,使用 Ajax 本身并不会使您的网站容易受到 javascript 注入的影响。以下指南适用于 ajax 和非 ajax 架构。

  1. 您应该确保对服务器进行的 ajax 调用只传递返回适当结果所必需的参数。您的应用程序逻辑(SQL 查询、可用于推断您在服务器端执行的操作的配置、密钥等)应该仍然存在于服务器上。
  2. 在允许服务器执行任何操作之前,您应该清理传递给您的任何服务的所有数据,以确保其属于您期望的数据类型。
  3. 如果您需要访问控制,在处理请求之前,请确保此人是他们所说的人。一种方法是在用户最初提供凭据时向他们返回唯一的访问令牌。然后,他们必须使用该访问令牌发出所有后续请求。有关类似策略的示例,请参阅 OAuth 2.0。
  4. 您应该确保您静态保存的所有敏感数据(在数据库、文件系统等中)都已加密。您应该尽量限制在应用程序内存中存储敏感数据的时间。
  5. 如果您的网站处理敏感数据,请确保您通过 SSL (https) 发出所有请求。这样可以确保它在从客户端到服务器的过程中被加密,反之亦然。
  6. 您可以在将 javascript 出售给客户之前对其进行混淆处理(通常与压缩程序一起提供)。这使黑客更难以尝试确定您的逻辑。任何聪明/敬业的黑客可能仍然可以理解您的逻辑,但它会使您的网站成为一个稍微困难的目标。

【讨论】:

  • 缩小代码对安全没有任何帮助。谷歌搜索并使用 deminifier 需要几秒钟。
  • @Pikamander2 - 我同意,因此是我声明的第二部分。您仍然很可能需要通过一堆命名错误的变量来理解代码。 Deminifiers只能做这么多。见这里:stackoverflow.com/questions/1387810/…
  • 我应该更清楚我的意思是混淆而不是简单地缩小。编辑。
  • @JK - 人们通常不知道什么是正确的问题。我也不同意这种情绪。如果你回答他们,也许他们提出的下一个问题会更好。
  • @user111222333 请注意,正如 yoda 所暗示的那样,最后一个,虽然听起来正是您正在寻找的东西,但几乎没有提供实际的安全性。如果您在没有正确处理其他方法的情况下实施该方法,您肯定会处于危险之中。请注意
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-21
  • 2010-12-19
  • 1970-01-01
  • 2018-11-17
  • 1970-01-01
  • 1970-01-01
  • 2018-04-02
相关资源
最近更新 更多