Kri*_*ell 9 security ajax jquery
这个问题一直困扰着我,所以我正在寻找意见和解决方案,以打击应用程序存在安全风险的可能性.
我使用jQuery做很多事情,但主要是我用它来处理jQuery对话框窗口.很多时候需要从表单上的字段中获取值,使用.serialize()命令连接该信息并将其传递给jQuery ajax调用以转换到PHP文件以进行数据库交互.
这是我的问题(最后),
是不是很容易"猜测"PHP处理的网址是什么样的?
您可以在现代浏览器中打开源,然后单击链接以查看包含ajax调用的完整JavaScript文件.
我可能会缩小JavaScript文件以进行混淆,但这不是一种依赖的安全形式.
我正在使用PDP进行数据库访问,并准备了SQL注入攻击语句,但如果有人花时间查看,他们是否只能形成一个有效的URL将其发送到数据库并插入他们想要的内容?
我不是在谈论将数据库黑客攻击钢铁信息,我更多的是在谈论插入恶意信息,就像从应用程序本身添加数据一样.想想在购物车中添加50美元只需25美元的东西.
如果它就像将ajax请求从GET转换为POST并更改我的PHP文件一样简单?
编辑:此人已登录并已正确验证.
只是想知道其他人在做什么.
谢谢!
hvg*_*des 12
你是完全正确的,任何精通技术的人都可以识别任何webapp的公共服务器端点.他们甚至不需要查看代码.他们可以使用他们的webkit/firebug来跟踪请求,或者像Charles这样监控网络活动的程序.
这就是您需要在服务器端代码中进行身份验证和授权处理的原因.
身份验证通常由用户名和密码处理; 这是验证用户是谁的行为.
授权可以由服务器上的角色处理,并且是检查以确保用户可以执行他们正在尝试执行的操作.
哪两个机制到位,即使用户知道网址,他们仍然需要"登录"并有权做他们想做的事情.
想一想.如果您在线查看自己的银行帐户信息,则可以轻松识别加载帐户信息的请求.如果没有这些机制,是什么阻止您只是更改传递给服务器的帐户ID以尝试获取其他人的帐户信息?通过身份验证/授权,服务器知道即使它收到加载某些数据的请求,它也可以检查用户的详细信息,以查看他们是否有权获取该数据,并拒绝该请求.
即使您从GET切换到POST,对于任何有兴趣查看(和更改)传递给您的服务器的参数的人来说仍然很容易.但这里是踢球者:即使你根本不使用AJAX,但是使用普通的旧表格,仍然可以非常容易地查看和编辑传递给服务器的任何参数.
在危急情况下,您永远不能完全依赖您从客户那里收到的东西.
例如,如果您要向购物车添加内容,请仅将项目的ID和数量传递给您的服务器.不要从您的客户端获取价格详细信息,而是从您的数据库中获取.如果有人试图破解你并编辑物品ID或发送的数量,那么最糟糕的事情就是他们最终会购买他们不想要的东西; 完全是他们的问题 (但出于同样的原因,如果是有限的报价,您需要验证您收到的数量不会超过您允许任何一个客户购买的数量).
因此,在一天结束时,您始终是开发人员必须决定您希望用户控制哪些值,并在您的服务器端验证您没有收到任何超出用户应该的范围的请求.能够做到的.