通过ajax将div的数据(文本)发送到服务器是否安全?或者获取<a>
标记的网址并使用它?
离。
<div id="get-value">Some Value</div>
<button id="send" data-url="process.php"></button>
javascipt的
$('#send').click(function() {
$.ajax({
url: this.dataset.url,
dataType: 'json',
type: 'post',
data: {
value: $('#get-value').text(),
}
});
});
如果我在开发人员工具中编辑div中的文本和按钮的data-url并单击后面的按钮怎么办?
答案 0 :(得分:2)
可以安全地执行此操作。
使用Javascript和AJAX时,您会受到这个固有问题的影响:始终可以修改。最小化问题的最佳方法是确保客户端上没有安全操作,而是让Javascript进行显示并提交。
在这种情况下,您可以保持原样。只要您正在清理服务器端的用户输入,那么您就可以尽力而为(除了混淆,这在Javascript中很少是一个好主意)。
答案 1 :(得分:0)
在我看来,我并不是安全专家,但这就是我处理事情的方式,你应该始终在服务器端验证和清理用户输入。如果用户可以提交数据,他们可以篡改数据,因此在您清理数据并确保它在服务器上是安全的之前,它是不安全的。
我不知道你在服务器端使用的是什么,但是现在大多数框架已经构建了在将用户输入提交到数据库之前清理用户输入的方法。我会查看服务器端语言/框架的文档,找出安全处理传入用户输入的最佳方法。
答案 2 :(得分:0)
通过ajax将div的数据(文本)发送到服务器是否安全?或者获取标签的url并使用它?
是
但请注意,由于它来自浏览器,因此它是用户输入,应该这样对待。您不能假设您提供给浏览器的数据,并期望它将被发送回服务器,并且不会被篡改。
不要使用授权这样的东西。您无法信任浏览器,无论用户是否为管理员,都会告诉您。您需要进行适当的身份验证,然后对服务器上的用户进行授权。
如果没有合适的逃避目的,请不要使用它。例如不要使用绑定参数,不要将其粘贴到SQL中。不要将特殊字符转换为实体(或使用带有白名单过滤器的HTML解析器来清除XSS风险)。