Arn*_*lis 5 javascript ajax jquery
好的,今天我在构建的系统上有很好的经验.有些人"砍掉"了所有东西,并说这是一个ajax问题.这就是他对我说的话:
当我访问用户的浏览器时你依赖于AJAX 我可以访问你为他写的所有AJAX函数,所以我可以用你的javascript写的任何东西都假装成那个用户
这绝对是一个非常糟糕的 - 如何通过ajax访问用户脚本?另外我在服务器上使用节点但无法实现问题所在.. ajax的例子:
var transfer_data = {
id: jQuery(this).data('spin-id')
};
jQuery.ajax({
url: init_s.forms.provably.callback,
type: 'POST',
dataType: 'JSON',
data: transfer_data,
success: function (data) {
console.log(data);
if (data.type == 'failed') {
jQuery('#check_modal').modal('toggle');
} else {
// add data
}
}, error: function (e) {
console.log(e.message);
}
});
Run Code Online (Sandbox Code Playgroud)
以及运行节点脚本的示例:
socket.on('new_spin_entry', function (data) { ... });
socket.emit('new_spin_entry', {
entry_id: data.user_spin_data.id
});
Run Code Online (Sandbox Code Playgroud)
那到底是什么?这怎么可能?
PS我忘了提到他在页面中加载的脚本中插入警报.不是服务器脚本,而是加载到用户的脚本
如果有人可以完全访问浏览器,那么他们可以运行他们喜欢的任何代码 - 包括修改或添加JavaScript到您的页面.这与使用Ajax的站点完全无关 - 客户端与服务器交互的任何一点都可能容易受到攻击.
如果他们只能改变他们自己使用的浏览器的页面,那么这是正常行为,无需担心.
如果他们可以通过其他站点的链接或表单提交来注入数据,那么您很容易受到反映的XSS攻击.
如果他们可以注入保存在服务器某处的数据,导致脚本为其他用户运行,那么您很容易受到存储的XSS攻击.
如果他们只有在授权用户的情况下才能这样做,那么您需要限制/正确编码提交的数据(因为您的授权用户不可信).
如果他们可以通过授权用户访问其他地方托管的页面来执行此操作,那么您很容易受到CSRF攻击,并且需要实施针对它们的保护(nonces是常用的解决方案).
也可以看看:
在客户端发送的任何变量都可以在发送到处理请求的服务器之前被黑客修改。为了防止这种情况,您必须在处理接收到的数据的服务器端代码上使用验证。永远不要相信任何形式的用户输入或直接从客户端接收到的可被操纵的变量。例如,在这种情况下,您可以使用会话变量来验证传输详细信息是否确实涉及登录用户,并检查这些详细信息是否包含某些恶意代码,例如旨在利用代码中的安全缺陷的 sql 查询。
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
5265 次 |
| 最近记录: |