这个jquery代码是安全的吗?

Sha*_*kan 6 security jquery

以下代码是否安全?

$iframe = $('<iframe id="iframe" src="' + $(this).attr('rel') + '" name="iframe">');
$area = $("#ajax-area");
$area.empty().append($iframe);
Run Code Online (Sandbox Code Playgroud)

哪里:

  1. $(this) 是点击链接.
  2. attr('rel') 保存iframe的src,并且由PHP创建rel(这里没有用户输入).
  3. $iframe持有要上传的表单.

我担心的是,因为在这种情况下,iframe的src是一个变量,我担心恶意用户会以某种方式设法编辑'rel'属性并打开他或她想要的iframe.这可能吗?

编辑

谢谢你的宝贵答案.

php使用以下内容填充rel:

App::basePath . '/some/path/to/my/folder';
Run Code Online (Sandbox Code Playgroud)

basePath开发人员选择的常量在哪里.

我会按照你们的建议,以更恰当的方式重新设计我的jquery.

Ja͢*_*͢ck 3

理论上,如果该rel属性基于服务器常量,那么除了您无法控制的安全问题(例如 MiTM)之外,应该不会出现其他安全问题。

然而,您在处理这些事情时应该始终保持安全;jQuery 通过允许将标签的属性作为第二个参数传递给构造函数来提供这种安全性:

$iframe = $('<iframe />', {
    id: "iframe",
    src=: $(this).attr('rel'),
    name: "iframe"
});
Run Code Online (Sandbox Code Playgroud)