function escape(s) {
var text = s.replace(/</g, '&lt;').replace(/"/g, '&quot;');
// URLs
text = text.replace(/(http:\/\/\S+)/g, '<a href="$1">$1</a>');
// [[img123|Description]]
text = text.replace(/\[\[(\w+)\|(.+?)\]\]/g, '<img alt="$2" src="$1.gif">');
return text;
}

payload:[[img123|Description]]

img123为图片资源地址,Description为图片描述。

/\[\[(\w+)\|(.+?)\]\]/g 此正则限定第一个分组(img123)只能为[-9a-zA-Z_] 。

/(http:\/\/\S+)/g 此正则将类似 http://a.com 的值转换为<a href="http://a.com">http://a.com</a>,尽管 s.replace(/</g, '&lt;').replace(/"/g, '&quot;'); 消除了<和"的隐患(他俩可扰乱正常的标签解析和属性的闭合),但又新引入了<、>、" 。

尝试:

<img alt="<a href="http://a.com" src="img123.gif">">http://a.com]]</a>

红色部分是属性名,黄色部分是属性值。

可以看到 http:// 后面的内容是危险区域。

尝试:

最新文章

  1. AEAI DP V3.7.0 发布,开源综合应用开发平台
  2. Moon.Orm性能报告
  3. yaf框架学习笔记
  4. FUND
  5. Java_Eclipse_Maven环境搭建
  6. 学习WCF之——wcf程序的创建
  7. Velocity魔法堂系列三:模板与宿主环境通信
  8. 解析XML最快速的方式
  9. java面试32问
  10. xml drawable
  11. javascript每日一练(六)——事件一
  12. Creating Spatial Indexes(mysql 创建空间索引 The used table type doesn&#39;t support SPATIAL indexes)
  13. 【JSP】JSP Action动作标签
  14. MIP开发教程(二) 使用MIP-CLI工具调试MIP网页
  15. iOS CATransition 自定义转场动画
  16. JDBC 返回主键
  17. Linux文件同步
  18. 剑指Offer-- 二叉搜索树中和为某一值的路径
  19. [APIO2012]守卫
  20. JSP的内置对象及方法

热门文章

  1. 170817关于Listener的知识点
  2. kubernetes-traefik(二十一)
  3. Denali NAND FLASH控制器的验证
  4. 老外写的-用Rawrite神器写入u盘镜像-制作u盘启动- fedora -u盘安装制作
  5. Ajax初探
  6. centos输入正确的账号和密码登陆不进去
  7. 007-Spring Boot-@Enable*注解的工作原理-EnableConfigurationProperties、ImportSelector、ImportBeanDefinitionRegistrar
  8. KVM 虚拟化架构和实现原理
  9. 红米4高配版 qusb bulk unknow device 不加电,不亮灯,没反应的 黑砖 的维修方法
  10. 获取当前进程当前runtime加载的appdomain