假设Javascript始终打开是否安全?

时间:2009-05-14 13:23:48

标签: javascript

重复:

  

Do web sites really need to cater for browsers that don’t have Javascript enabled?
  Only supporting users who have Javascript enabled.
  How common is it for Javascript to be disabled
  How many people disable Javascript?

我已经开启和关闭了几年的Web应用程序,我写的每个应用程序似乎都有比以前更多的javascript。

常见的评论是:“但如果用户关闭Javascript怎么办?”。

我注意到了,但我从未见过用户这样做过。不是一次。

你呢?

12 个答案:

答案 0 :(得分:8)

每隔一周左右出现一次。你先搜索了吗?

见这些:
https://stackoverflow.com/questions/121108/how-many-people-disable-javascript
https://stackoverflow.com/questions/379735/how-common-is-it-for-javascript-to-be-disabled
Only supporting users who have Javascript enabled
Do web sites really need to cater for browsers that don't have Javascript enabled?

要点是:

  • Google在编制索引时不使用javascript
  • 移动浏览器(iPhone等智能手机)有时会出现错误或不存在的javascript
  • 屏幕阅读器不能正常运行,如果有的话,并且法律要求许多开发人员支持它们。
  • 感谢像NoScript这样的过滤器,禁用javascript浏览的人数(至少最初)可能实际上是 up

所以是的,你仍然需要担心它。

答案 1 :(得分:7)

这完全取决于您需要的覆盖范围。

您是否需要80%90%100%的用户才能使用您的网站/应用程序?

人们关掉Javascript。问题是,您的网站是否需要为这些人工作?如果他们想继续,可以告诉他们打开它吗?

答案 2 :(得分:3)

是的,它发生了。

NoScript是一个Firefox附加组件 - 由很多人下载。

No Script

答案 3 :(得分:2)

您应该始终确保您的网站无需javascript即可运行。

出于安全原因,人们会关闭javascript。公司有时会在他们的内部计算机上强行关闭javascript。此外蜘蛛没有javascript所以你的网站没有javascript工作是不好的SEO实践。

答案 4 :(得分:2)

答案 5 :(得分:2)

我已经成为我办公室的标准(无论好坏),假设用户已经安装并打开了JS。关闭它的人数每天都越来越少,但这并不意味着你应该放弃在服务器端执行必要的验证,以防万一(以及其他一些场景) )。

答案 6 :(得分:2)

我会说假设javascript一直打开是不安全的,但是要求打开javascript是安全的。

换句话说,你不需要跳过箍来让没有它的东西工作,只需显示一条消息或重定向。

Javascript是一项必不可少的技术,要求它是不合理的。

答案 7 :(得分:2)

这很少见,但有可能。如果您要在互联网上启动“所有人”的应用程序,那么是的,您必须为这样的事件做好准备。这实际上取决于您的目标受众,但最安全的假设是有人会关闭它。

从安全角度来看,你肯定需要处理这种情况,因为如果不在服务器上进行双重检查,关闭JavaScript(或者更糟糕的是劫持你编写的脚本)很容易绕过业务逻辑和验证。要求它被打开并不足以防止在这种情况下阻止人们。请记住,您要求浏览器告诉您启用和禁用的功能。用户(或者说是这种情况下的攻击者)控制着浏览器,你不能相信它所说的内容,因为很容易修改HTTP头。

答案 8 :(得分:2)

取决于您的目标受众群体。一些用户出于各种原因关闭了JS。通常,他们会为需要它的个别网站启用它,但如果你不告诉他们需要它,他们可能不会这样做。

如果您的网站无法正确加载,他们会认为它已损坏。如果它显示“你需要JS来查看此页面”消息,那么至少他们会知道该怎么做。

有些人会专门为您的网站启用Javascript,但有些人不会,他们根本无法使用您的网站,除非它在没有Javascript的情况下正常运行。

答案 9 :(得分:1)

这种情况很少见,但它确实发生了。这实际上取决于您的用户群。如果是企业用户,他们中的很多人都有禁用javascript的默认安全设置。如果它是......几乎是其他任何人,可能他们会打开它。

答案 10 :(得分:0)

我默认运行javascript off for new sites(NoScript)插件。我认为许多精通技术的用户都这样做。至少那些对XSS攻击偏执的人。

答案 11 :(得分:0)

最佳做法是为已关闭JavaScript的用户编写代码。

作为Web开发人员,您的目标应该是提供核心基本功能(不使用JavaScript)。这样,所有用户都可以充分利用您的网站。然后通过使用JavaScript,在称为“渐进增强”的过程中,为启用了JavaScript的用户修改网站元素。

在JavaScript关闭的情况下......您的网站应该优雅地降级。

Web开发是您不能期待任何事情的竞技场之一。所有用户的代码,以最大限度地提高您网站的可访问性。