JSONP和跨域查询 - 如何更新/操作而不是只读

时间:2008-10-29 23:24:11

标签: ajax security jsonp

所以我正在读The Art& Javascript的科学,这是一本好书,它有一个很好的JSONP部分。我今天一直在阅读所有关于它的内容,甚至在StackOverflow上查看每个问题。 JSONP是一个好主意,但它似乎只解决了获取数据的“同源问题”,但没有为更改数据解决它。

我是否只是错过了所有讨论这个问题的博客,或者JSONP 不是我希望的解决方案?

2 个答案:

答案 0 :(得分:3)

JSONP导致使用可能作为GET请求所需的任何参数向另一台服务器生成SCRIPT标记。 e.g。

<script src="http://myserver.com/getjson?customer=232&callback=jsonp543354" type="text/javascript">
</script>

技术上没有什么可以阻止这种请求改变服务器上的数据,例如指定newName = Tony。您的响应可能是更新是否成功。您将受限于任何适合查询字符串的内容。如果您采用这种方法,请添加一些随机元素作为参数,以便代理不会缓存它。

有些人可能会认为这违反了GET的工作方式,即它们不应该导致数据发生变化。

答案 1 :(得分:0)

是的,说实话,我想坚持这种范式。但是,我可能会改变规则并说,不会改变/处理CRUCIAL数据的请求可以通过GET调用访问......嗯......

例如,我正在建立一个购物车系统,我认为允许从购物车添加/删除/等物品很容易通过GET公开,因为即使你可以改变数据,你也不能做任何关键的事情。如果有人恶意地将1000个平板显示器添加到您的购物车中,则至少会有一个验证步骤不会受到任何攻击(此时标准的ASP.NET页面,验证和所有爵士乐)。

在任何人看来,这是一个好的/可行的解决方案吗?