以下代码安全吗?
$iframe = $('<iframe id="iframe" src="' + $(this).attr('rel') + '" name="iframe">');
$area = $("#ajax-area");
$area.empty().append($iframe);
地点:
$(this)
是点击的链接。attr('rel')
保存 iframe 的 src,rel 由 PHP 创建(此处无需用户输入)。- 并且
$iframe
包含要上传的表单。
我担心的是,由于在这种情况下 iframe 的 src 是一个变量,我担心恶意用户会以某种方式设法编辑“rel”属性并打开他或她想要的 iframe。这可能吗?
编辑
感谢您的宝贵回答。
php 使用以下内容来填充 rel:
App::basePath . '/some/path/to/my/folder';
其中basePath
是开发人员选择的常量。
我会按照你们的建议以更合适的方式重新设计我的jquery。
最佳答案
理论上,如果 rel
属性基于服务器常量,那么除了您无法控制的问题(例如 MiTM)之外,应该不会出现其他安全问题。
但是,您在处理这些事情时应该始终保持安全; jQuery 通过允许将标签的属性作为第二个参数传递给构造函数来提供安全性:
$iframe = $('<iframe />', {
id: "iframe",
src=: $(this).attr('rel'),
name: "iframe"
});
关于jquery - 这个 jquery 代码安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15740497/