首页 > 其他分享 >PebbleTemplates 默认一些安全处理

PebbleTemplates 默认一些安全处理

时间:2023-03-17 12:22:34浏览次数:44  
标签:instanceof wiki io object pebbletemplates 默认 安全 PebbleTemplates https

PebbleTemplates 支持了不少安全控制(这个是也模版引擎普遍存在的问题)

内容转义

核心是规避xss 问题,包含了自定以及手工处理,包含了html,js,css,url_param 。。。。

方法访问的

因为模版很容易引入一些非安全方法引用,官方包含了一个方法访问校验 MethodAccessValidator
已经包含了一些实现,默认使用的BlacklistMethodAccessValidator 主要的控制如下

 
private static final String[] FORBIDDEN_METHODS = {"getClass",
  "wait",
  "notify",
  "notifyAll"};
 
@Override
public boolean isMethodAccessAllowed(Object object, Method method) {
boolean methodForbidden = object instanceof Class
    || object instanceof Runtime
    || object instanceof Thread
    || object instanceof ThreadGroup
    || object instanceof System
    || object instanceof AccessibleObject
    || this.isUnsafeMethod(method);
return !methodForbidden;
}

同时创建引擎的时候可以自己控制

PebbleEngine engine = new PebbleEngine.Builder().loader(delegatingLoader).methodAccessValidator(new BlacklistMethodAccessValidator()).extension(new MyExtension()).build();

说明

做好安全控制还是比较重要的,了解提供的基本能力,可以更好的确保安全

参考资料

https://pebbletemplates.io/wiki/guide/extending-pebble/
https://pebbletemplates.io/wiki/guide/escaping/
https://pebbletemplates.io/wiki/filter/escape/
https://pebbletemplates.io/wiki/guide/spring-boot-integration/

标签:instanceof,wiki,io,object,pebbletemplates,默认,安全,PebbleTemplates,https
From: https://www.cnblogs.com/rongfengliang/p/17226213.html

相关文章

  • PebbleTemplates 模版解析处理简单说明
    以下是一个简单的说明如何集成起来的,详细的可以阅读完整源码调用在getPebbleTemplate部分,参考处理privatePebbleTemplategetPebbleTemplate(Stringtempla......
  • 隔离网络下的数据交换,怎么兼顾安全与传输速度?
    为了保障企业的网络与数据安全,很多企业基于物理隔离或逻辑隔离的方式,进行了网络隔离。企业做了网络隔离后,原本隔离网络间的文件数据传输需求还存在,因此,企业需要隔离网络下......
  • 第三方件安全检查OWASP
     说明:本插件用于识别项目依赖项并检查是否存在任何已知公开披露的漏洞。集成到jenkins步骤如下:安装Dependency-CheckOWASPDependency-CheckProject|OWASP进......
  • PebbleTemplates 自定义tag&filter&function 开发简单说明
    PebbleTemplates的扩展能力还是很强大的,开发起来也比较方便,以下是一个简单的说明,更加复杂的推荐查看官方源码学习filter开发参考代码此filter直接返回rongfenglian......
  • 如何更改Dolibarr服务的默认端口号
    Dolibarr是一个ERP管理系统软件。默认是80端口,如果需要改成其它端口,如8080,那么:1.修改apache2的两个配置文件:/etc/apache2/ports.conf,  /etc/apache2/sites-enabled/0......
  • Web安全day1
    ##渗透测试​####前期:信息收集####中期:渗透获取一定的权限####后期:权限维持,提权,木马,痕迹擦除 ###渗透测试之信息收集:尽可能收集目标组织的信息,知己知彼####1......
  • Web安全day2
    ####sql注入就是web应用程序对用户输入数据的合法性没有判断,前端传入后端的参数是用户可控的,并且参数可以带入数据库查询SQL注入满足2个条件1.参数可控2.参数带入数据库......
  • PebbleTemplates 模版引擎使用
    PebbleTemplates是一个类似jinja的java模版引擎(受twig启发)支持的能力还是很多的,而且扩展性很不错,比如模版资源加载,模版缓存自定义扩展。。。。,是一个值得使用的模版引......
  • ignite系列之13--默认日志级别level之大坑
     Ignite日志逻辑说明默认日志配置文件ignite配置中不指定配置文件默认使用{IGNITE_HOME}/config/java.util.logging.properties配置文件默认配置示例如下:.level=IN......
  • 自定义TCP协议,私有TCP协议以及TCP协议安全性提高升级
    tcp协议是最底层的,一般来说无需修改,直接使用。但是在某些场景下,直接使用会带来一些安全性的问题:比如物联网设备。物联网设备需要经常的发送消息到服务器,如果直接使用标准T......