EscapeHTML

Go part 2 基础语法

我们两清 提交于 2020-11-20 08:46:26
关键字、标识符 标识符: 是用户或系统定义的有意义单词组合,或单词与数字组合(具体意义有定义者决定)    标识符以字母下划线开头,大小写敏感, 比如:boy, Boy, _boy, _(匿名变量,用来忽略结果) 标识符命名规范:在习惯上,Go语言程序员推荐使用驼峰式命名,当名字有几个单词组成的时优先使用大小写分隔,而不是优先用下划线分隔。因此,在标准库有QuoteRuneToASCII和parseRequestLine这样的函数命名,但是一般不会用quote_rune_to_ASCII和parse_request_line这样的命名。而像ASCII和HTML这样的缩略词则避免使用大小写混合的写法,它们可能被称为htmlEscape、HTMLEscape或escapeHTML,但不会是escapeHtml。 关键字: 是 Go 语言提供的有特殊含义的符号,也叫做“保留字” 系统保留关键字: break default func interface select case defer go map struct chan else goto package switch const fallthough if range type continue for import return var 常量与变量 常量 常量使用 const 修饰,表示是只读的,不能修改 const 只能修饰

Algolia Search

房东的猫 提交于 2020-10-03 00:03:49
First. 什么是 algolia search? 根据algolia官方网站自我阐述: Algolia是一个托管搜索引擎,提供全文,数字和多面搜索,能够从第一次击键中提供实时结果。 Algolia强大的API可让您快速无缝地在网站和移动应用程序中实施搜索。 我们的搜索API每月为成千上万的公司提供数十亿条查询,可在全球100ms之内提供相关结果。 简单直白的说就是一个提供云搜素服务的第三方平台。我们通过调用algolia的feed接口把一些我们想要呈现给用户的内容上传到algolia平台,可以是产品,文章,图片等等信息。 然后我们可以在自己的网站上通过构建前端或者后端搜素方式,把用户的关键词提交给algolia,同时algolia在很短的时间内容作出回应,返回给我们与搜索有关的内容。 Second. 建筑用户搜索界面 Algolia在官方文档中推荐我们使用 InstantSearch (即时搜索),这种搜索方式提供的效果确认给人一种很即时的感觉,没得用户键盘键入一个字母,algolia都会返回结果集。 InstantSearch属于前端搜索范畴,构建前端搜索algolia支持的语言还是比较丰富的例如 js,React,Vue,ios... 使用js构建前端搜索根据文档真的是十分的方便,只需把文档中的案例代码复制粘贴稍做改动就可以达到自己想要的结果

【转义字符】HTML 字符实体< &gt: &等

假装没事ソ 提交于 2020-08-06 13:54:12
在开发中遇到javascript从后台获取的url 会被转义,如:http://localhost:8080/Home/Index?a=14&b=15&c=123,想把它转成http://localhost:8080/Home/Index?a=14&b=15&c=123 网上找了半天的解决方案: 转义分为escapeHTML和unescapeHTML,先看两个函数的实现。 js代码: /** * @function escapeHTML 转义html脚本 < > & " ' * @param a - * 字符串 */ escapeHTML: function(a){ a = "" + a; return a.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "&apos;");; }, /** * @function unescapeHTML 还原html脚本 < > & " ' * @param a - * 字符串 */ unescapeHTML: function(a){ a = "" + a; return a.replace(/</g, "<").replace(/>/g, ">").replace(/&/g, "&").replace(/"/g

StringEscapeUtils的常用使用,防止SQL注入及XSS注入

不羁岁月 提交于 2020-08-04 16:58:20
引入common-lang-2.4.jar中 一个方便做转义的工具类,主要是为了防止sql注入,xss注入攻击的功能 官方参考文档 StringEscapeUtils.unescapeHtml(sname) 1.escapeSql 提供sql转移功能,防止sql注入攻击, 例如典型的万能密码攻击’ ’ or 1=1 ’ ‘ StringBuffer sql = new StringBuffer("select key_sn,remark,create_date from tb_selogon_key where 1=1 "); if(!CommUtil.isEmpty(keyWord)){ sql.append(" and like '%" + StringEscapeUtils.escapeSql(keyWord) + "%'"); } 1 2 3 4 2.escapeHtml /unescapeHtml 转义/反转义html脚本 System.out.println(StringEscapeUtils.escapeHtml("<a>dddd</a>")); 1 输出结果为:<a>dddd</a> System.out.println(StringEscapeUtils.unescapeHtml("<a>dddd</a>")); 1 输出为: <a>ddd</a> 1 3

Jenkins系列之四——设置邮件通知

随声附和 提交于 2020-05-07 22:12:28
Jenkins持续集成,当我们自动打包部署完,我们可以发送一封邮件给相关的负责人。现介绍一下如何在Jenkins中配置实现邮件通知。 在Jenkins中配置实现邮件通知,Jenkins提供了两种方式的配置。 1、Jenkins内置默认的邮件通知,但是它本身有很多局限性,比如它的邮件通知无法提供详细的邮件内容、无法定义发送邮件的格式、无法定义灵活的邮件接收配置等等。 2、通过安装Email Extension Plugin插件,使用该插件来发送邮件通知。 不管哪种邮件通知都有全局配置和项目配置。其中全局配置是在Jenkins中系统管理的系统设置里面设置,项目配置在具体的项目中的配置中设置。 下面分别说明Jenkins两种邮件通知的配置。 示例中的Jenkins版本为 Jenkins ver. 2.107.2 一、Jenkins内置默认的邮件通知配置 【系统管理】——【系统设置】 在系统设置中找到Jenkins Locaction项填入Jenkins URL和系统管理员邮件地址,系统管理员邮件地址一定要配置,否则发不了邮件通知。因为邮件通知都是由系统管理员的邮箱发出来的。 点击【Test configuration】显示Email was successfully sent则发送成功。 2、设置项目通知 选择项目 在项目的设置中找到“增加构建后的操作步骤”,选择“E-mail

Azkaban日志中文乱码问题解决

主宰稳场 提交于 2020-04-28 22:31:00
  Azkaban作为LinkedIn开源的任务流式管理工具,在工作中很大程度上被用到。但是,由于非国人开发,对中文的支持性很不好。大多数情况下,会出现几种乱码现象: - 执行内置脚本生成log乱码 - 直接command执行中文乱码 - 中文包名乱码等,其中对日常使用影响最大的就是日志乱码问题。不管是调度Hive、DataX还是Java程序,只要日志抛出来中文,中文都是乱码显示,将日志文件拷贝出来查看文件格式为GB2312,但是Linux系统编码和Azkaban日志编码明明设置的都是UTF-8,很疑惑,摸索许久,决定从源码入手开始层层解惑。   文中大部分内容从源码一步步进入解析,有经验的朋友可以跳至文末见具体解决方法。   根据页面获取日志的接口可以知道方法在 azkaban-web-server项目下package azkaban.webapp.servlet 下的方法handleAJAXAction,如下图 请求参数是fetchExecJobLogs    对应的处理方法为 ajaxFetchJobLogs(req, resp, ret, session.getUser(), exFlow)和ajaxFetchExecFlowLogs(req, resp, ret, session.getUser(), exFlow)   进入该方法后可以发现返回的data为经过

富文本 保存转义StringEscapeUtils.unescapeHtml4(

蹲街弑〆低调 提交于 2020-04-28 08:10:20
StringEscapeUtils.unescapeHtml4( 【org.apache.commons.lang.StringEscapeUtils.escapeHtml(str)】 【StringEscapeUtils】 String str = "<a href='http://www.baidu.com'>baidu</a><script>"; /** * Spring的HtmlUtils进行转义 */ //<a href='http://www.baidu.com'>baidu</a><script> System.out.println(org.springframework.web.util.HtmlUtils.htmlEscape(str)); //<a href='http://www.baidu.com'>baidu</a><script> System.out.println(org.springframework.web.util.HtmlUtils.htmlEscapeDecimal(str)); //<a href='http://www.baidu.com'>baidu</a><script> System.out.println(org.springframework.web.util.HtmlUtils.htmlEscapeHex(str)); /

web漏洞之xss(学习记录)

主宰稳场 提交于 2019-12-21 17:50:42
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> xss又名跨站脚本攻击,是一种注入攻击,当web应用对用户输入过滤不严格,攻击者写入恶意的脚本代码(HTML、JavaScript)到网页中时,如果用户访问了含有恶意代码的页面,恶意脚本就会被浏览器解析执行导致用户被攻击。 常见的危害有:cookie窃取,session劫持,钓鱼攻击,蠕虫,ddos等。 解决办法: 1.更新较高版本的jQuery 2.过滤关键字,同时注意header,host(建议正则),转义字符,如“<”转义字符是&lt;"<"的转义字符为&gt; ,也可以使用org.apache.commons.lang.StringEscapeUtils.escapeHtml(str)来转义。缺点是入库时候,它的长度要比请求时候的长度要长。注意某些场景下,可能需要将其进行反转义。 3.前后端同时判断正误,限制请求数据。 (做记录学习用) 来源: oschina 链接: https://my.oschina.net/u/2918350/blog/3108273

正则表达式的简单介绍和string.replace的用法

风流意气都作罢 提交于 2019-12-04 15:49:49
一、正则表达式的创建 JS正则的创建有两种方式: new RegExp() 和 直接字面量。 //使用RegExp对象创建 var regObj = new RegExp("(^\s+)|(\s+$)","g"); //使用直接字面量创建 var regStr = /(^\s+)|(\s+$)/g; 其中 g 表示全文匹配,与之相关的还有 i 和m,i 表示匹配时忽略大小写,m 表示多行匹配,如果多个条件同时使用时,则写成:gmi 二、()、[]、{} 的区别 () 的作用是提取匹配的字符串。表达式中有几个()就会得到几个相应的匹配字符串。比如 (\s+) 表示连续空格的字符串。 []是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示字符文本要匹配英文字符和数字。 {}一般用来表示匹配的长度,比如 \d{3} 表示匹配三个空格,\d[1,3]表示匹配1~3个空格。 三、^ 和 $ ^ 匹配一个字符串的开头,比如 (^a) 就是匹配以字母a开头的字符串 $ 匹配一个字符串的结尾,比如 (b$) 就是匹配以字母b结尾的字符串 ^ 还有另个一个作用就是取反,比如[^xyz] 表示匹配的字符串不包含xyz 需要注意的是 :如果^出现在[]中一般表示取反,而出现在其他地方则是匹配字符串的开头 四、\d \s \w . \d 匹配一个非负整数, 等价于 [0-9] \s 匹配一个空白字符

存储XSS跨站脚本攻击过滤解决方案

和自甴很熟 提交于 2019-11-30 09:37:54
漏洞描述: 本页面存在跨站脚本攻击。跨站脚本漏洞,即XSS,通常用Javascript语言描述,它允许攻击者发送恶意代码给另一个用户。因为浏览器无法识别脚本是否可信,跨站漏洞脚本便运行并让攻击者获取其他用户的cookie或session。 加固建议: 总体修复方式:验证所有输入数据,有效检测攻击;对所有输出数据进行适当的编码,以防止任何已成功注入的脚本在浏览器端运行。具体如下 : 输入验证:某个数据被接受为可被显示或存储之前,使用标准输入验证机制,验证所有输入数据的长度、类型、语法以及业务规则。 输出编码:数据输出前,确保用户提交的数据已被正确进行entity编码,建议对所有字符进行编码而不仅局限于某个子集。 注意黑名单验证方式的局限性:仅仅查找或替换一些字符(如"<" ">"或类似"script"的关键字),很容易被XSS变种攻击绕过验证机制。 警惕规范化错误:验证输入之前,必须进行解码及规范化以符合应用程序当前的内部表示方法。请确定应用程序对同一输入不做两次解码。对客户端提交的数据进行过滤,一般建议过滤掉双引号(”)、尖括号(<、>)等特殊字符,或者对客户端提交的数据中包含的特殊字符进行实体转换,比如将双引号(”)转换成其实体形式",<对应的实体形式是<,<对应的实体形式是>以下为需过滤的常见字符: [1] |(竖线符号) [2] & (& 符号) [3];(分号) [4] $