将 anyLinks: true 与 jQuery-terminal 一起使用有什么安全隐患?
What security implication to use anyLinks: true with jQuery-terminal?
我不能再在 jquery-terminal 中使用 relative link 因为所有 link 必须有一个 ftp 或 http(s) 协议。
我不太明白这个警告https://terminal.jcubic.pl/api_reference.php#security
如果我使用 anyLinks: true
选项继续使用相对 link 会发生什么情况?
如果您不回显用户的内容并且不将其发送给其他用户,例如使用聊天应用程序或者当您不回显用户和 exec 命令(使用 execHash 选项)时,则没有安全隐患.
如果您确实回显了来自用户的内容,那么用户可以输入 [[!;;;;javascript:alert("xss")]xss]
,如果您还允许来自用户的格式设置。
所以如果你使用这个你会很安全:
$('body').terminal(function(text) {
this.echo($.terminal.escape_brackets(text));
});
你也会很安全。
如果您需要回应用户的内容并允许格式化,那么您需要像正常的 XSS 预防一样验证用户输入,但字符串会有所不同。
我不能再在 jquery-terminal 中使用 relative link 因为所有 link 必须有一个 ftp 或 http(s) 协议。
我不太明白这个警告https://terminal.jcubic.pl/api_reference.php#security
如果我使用 anyLinks: true
选项继续使用相对 link 会发生什么情况?
如果您不回显用户的内容并且不将其发送给其他用户,例如使用聊天应用程序或者当您不回显用户和 exec 命令(使用 execHash 选项)时,则没有安全隐患.
如果您确实回显了来自用户的内容,那么用户可以输入 [[!;;;;javascript:alert("xss")]xss]
,如果您还允许来自用户的格式设置。
所以如果你使用这个你会很安全:
$('body').terminal(function(text) {
this.echo($.terminal.escape_brackets(text));
});
你也会很安全。
如果您需要回应用户的内容并允许格式化,那么您需要像正常的 XSS 预防一样验证用户输入,但字符串会有所不同。