通过HTTPS在AJAX调用上返回HTML内容的风险

时间:2014-10-06 07:37:48

标签: javascript html ajax security

我想动态加载HTML内容,例如通过AJAX调用更新Bootstrap的模态对话框内容(因为刷新页面并再次显示模态很奇怪),但在此之前,我想知道风险,这样做时我需要关注,以及可能的解决方案。

这样做的主要原因是我正在为Liferay开发一个portlet,我希望动态更新我的portlet内容而不刷新整个页面。

当然我可以将JSON中的数据从我的服务器返回到客户端,但是我必须编写复杂的客户端逻辑来更新DOM,逻辑可能更容易完成,例如,JSP

假设webapp仅为HTTPS,不确定这对任何事情都有帮助。

2 个答案:

答案 0 :(得分:1)

基于webapp仅为HTTPS的假设,让所有AJAX调用也使用它是非常好的。这不会造成混合不安全和安全连接的破坏,以及浏览器提供的警告对话框。

唯一的风险可能是跨网站脚本造成的,如果部分HTML是在其他地方生成的,或者部分内容是基于未经验证的用户输入。

解决方案是始终验证ans清理其他来源的输入。有关这方面的更多信息,请访问:https://www.owasp.org/index.php/Data_Validation

答案 1 :(得分:0)

也许你为这项工作选择了错误的框架,并且会考虑像客户端渲染那样将json数据绑定到视图(例如:angular,ember,backbone或knockout)

如果可能,请考虑使用Element.innerText$(Elm).text()代替Element.innerHTML$(elm).html()

在将用户保存到数据库或渲染视图之前对用户可以更改的所有内容进行编码可能是个好主意

但是如果你允许一些html,你需要一个带有witelist approtch的清理插件来严格允许的标签和放大器。属性

http和https的唯一不同之处在于,man-in-the-middle attack读取/拦截/更改请求的内容会更加困难。回应