问题标签 [javascript-security]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
742 浏览

javascript - javascript securty:记录用户屏幕分辨率的AJAX调用,是否可以防止假号码?

这是一个 javascript 安全问题:假设一个页面找到了计算机的屏幕分辨率,例如 1024 x 768,并希望使用 AJAX 调用将此数据记录到数据库中。

有没有办法真正防止虚假数据输入数据库?我认为无论 HTML 或 Javascript 做什么,用户都可以对代码进行逆向工程,以便将一些假数字输入数据库,或者有没有办法完全防止它发生?(100% 安全)。

更新:或在类似的情况下...如果我编写一个简单的 javascript 游戏...有没有办法让用户通过 AJAX 发回分数并谎报他们的分数?

0 投票
2 回答
236 浏览

javascript - 哪些 Javascript 安全技术和问题应该成为程序员在可靠 Web 开发方面的技能的一部分?

哪些 Javascript 安全技术、问题和限制应该成为程序员在可靠 Web 开发方面的技能组合的一部分?

0 投票
2 回答
561 浏览

javascript - 在网页上显示安全密码对话框

我已经为我们的网络构建了一个单点登录系统。它是这样工作的:

  • 用户点击他想要登录的站点(“不安全站点”)上的登录链接。不安全站点的 ID 在 URL 中传递。
  • 他最终进入了系统(称为“RAS”)的登录页面。这是在它自己的域上,并且将来可能会获得 HTTPS,因此用户可以看到他的数据是安全的。
  • 用户登录。在保存用户 ID、不安全站点 ID 和到期时间的服务器上进行“会话”。
  • 用户的浏览器被重定向回不安全的站点。新创建会话的 ID 作为 URL 参数传递。
  • 不安全站点向 RAS 发送用户数据请求。它包括会话 ID 和一些凭据,这些凭据将识别和验证 RAS 上的不安全站点。(请注意,用户和他的浏览器完全被排除在外)
  • 用户的数据(没有密码)被返回到不安全的站点。然后,不安全的站点将其存储在它自己的会话中,或者其他什么都没有关系。

(要查看它的实际效果,请访问例如 cncguild.net 并单击顶部附近的登录链接)

如您所见,这是非常安全的。不安全的站点在任何时候都无法访问用户的密码。

但是,关于可用性,我们希望更好地将登录过程与不安全的站点集成。这样做的方法是,而不是做整个“发送到登录页面并重定向回来”,而是打开一个弹出窗口。我目前看到三种可能的方法来做到这一点:

  • 使用登录表单添加覆盖 div。使用 AJAX 与 RAS 通信,直到登录完成并且客户端代码收到会话 ID。然后它可以通过将此会话 ID 发送到它自己的服务器端代码(通过刷新或 AJAX)来处理用户数据的获取。虽然这会带来最佳的可用性,但也存在一些巨大的安全隐患:

    • 不安全站点的 Javascript 可以访问密码
    • 虽然用户可以检查源以查看它是否试图窃取它,但谁在认真地这样做呢?
  • 不要将表单放在同一个 HTML 文档中,而是让覆盖 div 包含一个带有登录页面的 iframe。

    • 这会隐藏不安全站点的密码(如果浏览器具有不错的 iframe Javascript 安全策略)
    • 没有明显的浏览器界面标记可以向用户显示它是这样的。因此,恶意的不安全站点作者可以构建自己的登录表单副本,该副本看起来完全相同,但实际上不在 iframe 中。
    • 除了刷新之外,没有办法将会话 ID 传回不安全的站点。不可能在不安全的站点上进行花哨的 AJAX 登录。
  • 在真实弹出窗口中打开登录页面(window.open)

    • URL 和 HTTPS 图标清晰显示
    • 它可能真的很丑。我不确定可用性相对于它现在的工作方式是否真的有很多好处。

您对这三个选项中的每一个都有什么看法?当然,我期待第一个选项的嘲笑。它把安全撕成碎片。为了完整起见,我将其包括在内。也欢迎更多选择

0 投票
1 回答
4634 浏览

security - 为什么 XMLHttpRequest 的同源策略

为什么浏览器对 XMLHttpRequest 应用同源策略?这对开发人员来说真的很不方便,但它似乎在真正阻止黑客方面几乎没有什么作用。有一些变通方法,它们仍然可以包含来自外部来源的 javascript(JSONP 背后的力量)。

在很大程度上相互关联的网络中,这似乎是一个过时的“功能”。

0 投票
3 回答
2260 浏览

javascript - 为什么我们可以链接到另一个域上的 js 文件?

为什么当我们从 y.com(例如 google analytics 或 jquery)链接到 x.com 上的 javascript 文件时,它不会导致任何跨域安全问题?

例如:

在 y.com/index.html 我们有:

我们怎么知道什么时候可以做,什么时候不可以?

0 投票
2 回答
129 浏览

javascript - 如何阻止其他人访问 JavaScript

可能重复:
保护客户端逻辑和数据

如何阻止其他人通过查看源读取我的 JavaScript?

我的事情是,现在人们可以访问我的 JavaScript,因为我不确定,但只是从外部猜测一些人使用一些工具来更改我的 JavaScript 事件。

那么如何进行认证呢?

0 投票
1 回答
124 浏览

javascript - 保护 java 脚本文件中使用的数据

我正在开发一个网络移动应用程序。在我的应用程序中,我从服务器获取一个 json 字符串,在我的 java 脚本中使用:

然后我将 json 文本转换为 json 对象,将其保存在本地存储中,然后在不同的 java 脚本中使用它。在我的项目中,我只使用 HTML 和 java 脚本文件,一切对我来说都很好。我唯一的问题是如何保护我获得的数据,使其不会被其他人使用,因为该应用程序可供人们使用,并且我不允许他们访问我从服务器获取的 json 字符串。

谢谢你的时间

0 投票
1 回答
259 浏览

facebook - 如何从 Facebook Page Tab 应用程序(在 iframe 内)访问屏幕分辨率信息

我得到了 FB 应用程序,它对用户上传的照片进行了一些更改并将它们输出为桌面壁纸。我想预定义当前用户的屏幕分辨率,但从 iframe 实现这一点似乎是不可能的(出于安全原因)。

您可以在 FB 应用程序 iframe 中执行一些特殊技巧来获取此信息吗?

0 投票
1 回答
138 浏览

javascript - 有关 Javascript 安全性的文章

我正在搜索 Javascript 安全性的基础知识及其弱点。我已经在阅读 Javascript: The Complete Rereference 2nd Edition。我正在寻找好文章。请问有什么建议吗?谢谢。

0 投票
1 回答
808 浏览

php - 如何从 chrome 扩展中安全地更新远程数据库?

我很难弄清楚这一点。花了大约 4 个小时在网上爬行,没有 SO 帖子来救我。

想象一个场景:

  1. 我已经编写了一个 chrome 扩展程序,它可以捕获网页上的一些特定操作(主要是单击按钮)。该动作触发了一个函数,该函数捕获一些用户信息和按钮信息(都存在于页面本身上)并显示它

  2. 现在我希望插件应该能够将其更新到远程服务器上的数据库设置中。

由于我精通 PHP(因此 MySQL 是不错的选择),我正在寻找一种解决方案来确保仅且仅从扩展本身进行更新。

为此,我认为最好的选择是运行 GET/POST 请求,例如http://remoteserver.tld/update-db.php?id=XXXX&action=YYYYY&foo=bar .... 等。但是如果用户在插件外部打开/传递帖子变量到这个 url?

数据仍将更新,完整性将丢失!

下一个最好的想法是在请求中包含密钥,但是扩展是用 JS 编写的,几乎任何人都可以嗅出密钥。

指导我更新远程服务器上的数据库并确保操作经过身份验证的最佳方法。

干杯!