首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >黑客可以在我的jQuery函数中注入值吗?

黑客可以在我的jQuery函数中注入值吗?
EN

Stack Overflow用户
提问于 2012-08-26 01:15:03
回答 2查看 1.1K关注 0票数 6

我一直收到来自我的web应用程序的意外数据。黑客可以更改javascript函数中的值吗?

如果我的代码是:

代码语言:javascript
复制
my_function('new_item',10,20,30,40);

是否可能'new_item‘参数已被篡改?我能做些什么来防止这种情况发生?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-26 01:21:37

是的,任何用户都可以更改你发送给他们的浏览器的任何JavaScript --“黑客”这个词被夸大了,因为即使是一个中等水平的用户也完全有能力使用火狐的Firebug或者Chrome/Safari的常用文档检查器来拆分。这就是web开发人员重复公理的原因:

从不信任用户输入!

在任何情况下,您都不应该信任用户发送的任何内容。不要在数据库中插入任何内容,除非会话是可验证的,否则不要信任登录凭据。你信任的任何东西都是一个漏洞,每个漏洞总有一天会被利用。

不要试图保护你的JavaScript,这是不可能的。相反,应该验证用户尝试执行的所有操作:如果用户请求了他们不允许查看的页面,即使JavaScript请求,也不要将其提供给客户端。

票数 9
EN

Stack Overflow用户

发布于 2012-08-26 01:22:28

你无法确保你所有的客户端代码都是安全的,有一些方法你可以让它变得更难,但它们根本没有任何帮助,因为更高级的黑客很容易被通过。

例如,如果您使用

代码语言:javascript
复制
<script></script>

标记通过其他文档链接到您的代码中。例如,你可以说有4个脚本。脚本1、2和3相互链接,直到它们到达4,这是主要函数的位置。这不会阻止任何事情,它只会让初学者“黑客”/篡改人更难。-但它只在chrome的javascript控制台上有效。Firebug并不关心脚本在DOM上的位置。因此,它只是证明了,与其花时间试图完全隐藏你的javascript代码,或者试图完全保护它(这是),你应该花时间在后端验证东西。

请记住,没有办法完全防止黑客篡改您的客户端代码。在客户端上信任任何东西都是不明智的。对于任何后端检查,PHP都能派上用场。还要确保防止PHP中的SQL注入。但不要因为你使用了mysql_real_escape_string()乙醚就认为你很安全。在这里阅读更多:SQL injection that gets around mysql_real_escape_string(),我个人推荐你的db代码使用PDO。

只需将您的服务器端代码(如PHP)视为主城堡的护城河。现在,可以将客户端代码看作是护城河周围的木栅栏。任何士兵都可以轻易地推倒木制栅栏,但他们必须挖到护城河才能到达你的keep -(他们必须通过PHP验证),如果护城河是无人看守的(没有PHP验证变量),那么士兵可以在没有人查看的情况下挖出护城河。

^现在把它想象成你的网站的样子。护城河容易被挖掘吗?如果是这样的话,在那里找一些守卫(-make确信你已经确保了php的有效性)。

当涉及到客户端时,你永远不应该相信任何东西。那道木栅栏从来都没有保护措施。即使是javascript卫士也不能保护它。

我对这个答案做了很多修改,因为一开始我并不清楚我真正的意思是什么。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12124065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档