Javascript 最终用户(黑客)如何更改Jquery和HTML值?

Javascript 最终用户(黑客)如何更改Jquery和HTML值?,javascript,jquery,html,Javascript,Jquery,Html,我一直在寻找更好的方法来保护我的网站。许多论坛和Q/A网站表示,最终用户可能会更改jquery变量和HTML属性。他们是怎么做到的?如果他们可以更改站点上的数据和元素,他们还可以插入脚本吗 例如,我有两个用于主页的jquery脚本。第一个是“会员专用”脚本,第二个是“访客专用”脚本。最终用户能否登录到我的站点,复制“仅限成员”脚本,注销并注入脚本,使其以访问者身份运行?Firebug和Greasemonkey可以用来替换任何javascript:浏览器作为客户端的本质是,用户基本上可以让它做任何

我一直在寻找更好的方法来保护我的网站。许多论坛和Q/A网站表示,最终用户可能会更改jquery变量和HTML属性。他们是怎么做到的?如果他们可以更改站点上的数据和元素,他们还可以插入脚本吗


例如,我有两个用于主页的jquery脚本。第一个是“会员专用”脚本,第二个是“访客专用”脚本。最终用户能否登录到我的站点,复制“仅限成员”脚本,注销并注入脚本,使其以访问者身份运行?

Firebug和Greasemonkey可以用来替换任何javascript:浏览器作为客户端的本质是,用户基本上可以让它做任何他们想做的事情。您的特定场景是完全可能的。

是的,可以安全地假设客户端上没有任何东西是安全的。使用Firefox的Firebug或Chrome的开发者工具等工具,最终用户可以操作(添加、更改、删除):

  • 你的HTML
  • 你的CSS
  • 你的JS
  • 您的HTTP头(发送到服务器的数据包)
  • 饼干
直接回答你的问题:如果你仅仅依靠JavaScript(最有可能是cookies)来跟踪用户会话状态并向成员和来宾提供不同的内容,那么我可以绝对肯定地说,其他人将绕过你的安全,这样做将是微不足道的

设计安全的应用程序并不容易,这是一场持续不断的战斗,需要数年时间才能完全掌握。黑客程序非常简单,对整个家庭来说都很有趣,并且可以在YouTube上用20分钟学会


话虽如此,希望JS中包含的内容不是“关键任务”或“敏感数据”。如果是这样的话,我会认真权衡聘请精通安全的第三方开发人员来帮助您的成本。因为,正如我前面所说,创建一个真正安全的网站并不容易。

好吧,如果你的脚本是公开的,没有服务器端的保护,黑客就可以在mozilla这样的浏览器中运行它。

您应该始终将受保护的内容保存在服务器端脚本中,并允许通过会话(或其他服务器端方法)进行访问。

是的,用户可以编辑脚本,但所有脚本都在用户的机器上编译,这意味着他们所做的任何更改只会影响他们的机器,而不会影响任何其他访问者

但是,如果您使用“仅限成员”脚本提供付费内容,那么使用服务器上的技术分发仅限成员的内容,而不是依靠客户端脚本来保护您的内容是最安全的

大多数安全问题发生在允许客户端与服务器交互并修改服务器上的数据时

这里有一些关于XSS的好信息:

简短回答:是的

用户可以查看和更改用户计算机上的任何内容,任何用户都可以编写自己的脚本在页面上执行

例如,如果您将此帖子粘贴到地址栏并在此页面中单击enter键,您将自动向上投票:

javascript: $('#answer-7061924 a.vote-up-off').click();
这不是真正的黑客行为,因为您是自己运行脚本的最终用户,只执行最终用户通常可以执行的操作。如果您允许站点上的最终用户以他们无法执行的方式执行影响服务器的操作,那么您就有问题了。例如,如果我有办法让Javascript自动执行,而不是您自己从地址栏运行它。每个来到这个页面的人都会自动投票给这个答案,这(显然)是不受欢迎的行为。

简单地说:

网页只是客户端使用服务器的界面。它可以以各种可能的方式进行更改,任何人都可以向您的服务器发送任何类型的数据

首先,您必须检查将数据发送到服务器的用户是否具有这样做的权限。通常通过检查服务器会话来完成

然后,您必须在服务器端检查您是否只获取了所需的数据,而不是更多或更少的数据,并且通过在服务器上验证数据是否有效

例如,如果用户必须填写某个表单中的必填字段,则必须检查数据是否已实际发送到服务器,因为用户可能只需从表单中删除该字段,然后发送该字段,而不必填写

另一个例子是,如果您试图将数据从表单动态添加到数据库,用户可能只需添加新字段,如“admin”,并将其设置为1,然后发送表单。如果数据库中有admin字段,则将用户设置为admin

最重要的一点是要记住避免SQL注入


有很多工具可以使用。它们是为web开发人员设计的,用于测试他们的站点是否安全。就是一个例子。

外卖课程:假设每个用户都是恶意的、邪恶的人;每一次输入,都是一种病毒;每一包都是灾难。ಠ_ಠ总结一下答案:Firebug(firefox)、开发者工具(Chrome)和Greasemonkey可以用来改变客户端脚本。任何东西(我的脚本,他们的脚本)都可以来自客户机,由我来确保不给他们或允许访问关键数据和功能。这正是我需要知道的。感谢你的帮助:摩西,费米,法特贾齐,山羊皮匠,佩莫列卢,保罗普。