以下代码是否安全?
$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。
$(this).attr('rel')
包含在 HTML 中有意义且需要转义的字符。你应该使用attr()
来填充src
属性。 - Álvaro González