安全原则之一是清理从客户端传递到服务器的字符串和变量。在普通PHP中,有一些防止XSS (跨站点脚本漏洞:
htmlspecialchars()strip_tags()防止XSS攻击的Drupal 8策略是什么?我如何清理客户端数据发布,以保护我的网站免受XSS攻击?
我记得Drupal 7有filter_xss()来防止XSS漏洞,但是针对XSS漏洞的Drupal 8策略是什么呢?
发布于 2016-07-14 08:59:54
清理输出以避免跨站点脚本(XSS)攻击,使用Twig模板,Twig主题引擎现在默认自动转义所有内容。这意味着,如果不使用过滤器,从Twig模板打印的每一个字符串(例如,
{{ }}之间的任何字符串)都会自动消毒。有关在Drupal中可用的Twig过滤器请参见过滤器-修改Twig模板中的变量。为了利用Twig的自动转义(并避免安全标记转义),理想情况下,所有HTML都应该从Twig模板中输出。API函数使用t()和\Drupal::translation()->formatPlural()以及@或%占位符来构造安全、可翻译的字符串。有关更多详细信息,请参阅Drupal 8中的代码文本翻译API。
由t()、Html::escape()、Xss::filter()或Xss::filterAdmin()处理的字符串被自动标记为安全,通过渲染器从呈现数组创建的标记字符串也是安全的。虽然它也可以对文本进行消毒,但在主题或模块中使用check_markup几乎是不正确的,除非在类似文本区域的上下文中使用相关的文本格式。
资料来源:Drupal 8:编写安全代码,Rade,Shyamala,Robert和Pere。
https://drupal.stackexchange.com/questions/207031
复制相似问题