转义

XSS攻击

穿精又带淫゛_ 提交于 2020-02-26 23:29:51
XSS攻击的介绍 在开始本文之前,我们先提出一个问题,请判断以下两个说法 是否正确 : XSS 防范是后端 RD(研发人员)的责任,后端 RD 应该在所有用户提交数据的接口,对敏感字符进行转义,才能进行下一步操作。 所有要插入到页面上的数据,都要通过一个敏感字符过滤函数的转义,过滤掉通用的敏感字符后,就可以插入到页面中。 如果你还不能确定答案,那么可以带着这些问题向下看,我们将逐步拆解问题。 XSS漏洞的发生和修复 XSS 攻击是页面被注入了恶意的代码,为了更形象的介绍,我们用发生在小明同学身边的事例来进行说明。 一个案例 某天,公司需要一个搜索页面,根据 URL 参数决定关键词的内容。小明很快把页面写好并且上线。代码如下: <input type="text" value="<%=getParameter("keyword")%>"> <button>搜索</button> <div> 您搜索的关键词是:<%=getParameter("keyword")%> </div> 然而 ,在上线后不久,小明就接到了安全组发来的一个神秘链接: http://xxx/search?keyword="><script>alert('XSS');</script> 小明带着一种不祥的预感点开了这个链接 [请勿模仿,确认安全的链接才能点开] 。果然,页面中弹出了写着”XSS”的对话框。 可恶

如何将XML中的&符号转义为HTML中的实体?

ぃ、小莉子 提交于 2020-02-26 14:32:00
我有一些XML文本希望在HTML页面中呈现。 这段文本包含一个&符号,我想以其实体表示形式呈现 &amp; 。 如何在源XML中转义此“&”号? 我试着 &amp; ,但这被解码为实际的&字符( & ), 在HTML中无效 。 因此,我想以将其呈现为 &amp; 的方式对其进行转义 &amp; 在使用XML输出的网页中。 #1楼 根据 XML 1.0规范的§2.4 ,您应该可以使用 &amp; 。 我尝试过 但这是不允许的。 您确定这不是另一个问题吗? XML明确将其定义为逃避&符的方式。 #2楼 &amp; 应该可以正常工作,Wikipedia具有 XML的预定义实体列表 。 #3楼 使用 CDATA 标签: <![CDATA[ This is some text with ampersands & other funny characters. >> ]]> #4楼 当您的XML包含 &amp;amp; ,这将导致文本 &amp; 。 当您在HTML中使用该代码时,该代码将显示为 & 。 #5楼 如何使用unicode \& 呢? 适用于我的Android XML文件。 如果出现问题,请让我知道。 来源: oschina 链接: https://my.oschina.net/stackoom/blog/3158709

lucene查询语法,适用于ELk:kibana查询

谁说我不能喝 提交于 2020-02-26 05:58:06
lucene查询语法,适用于ELk:kibana查询 Kibana在ELK中扮演着数据可视化角色,用来查询及展示数据; Elasticsearch查询采用的是luncene搜索引擎,其4过滤查询语法和lucene一致。 Kibana官方在线演示 字段搜索 Lucene支持实时数据。执行搜索时,您可以指定字段,也可以使用默认字段。字段名称和默认字段是特定于实现的。 限定字段全文搜索:field:value 精确搜索:关键字加上双引号 filed:"value" http.code:404 搜索http状态码为404的文档 字段本身是否存在 _exists_:http:返回结果中需要有http字段 _missing_:http:不能含有http字段 通配符搜索 Lucene支持单个术语内的单个和多个字符通配符搜索(不在短语查询中)。 ? 匹配单个字符 * 匹配0到多个字符 te?t,test*,te*t 注意:您不能使用*或?符号作为搜索的第一个字符。 正则表达式搜索 Lucene支持正向表达式搜索. name:/joh?n(ath[oa]n)/ 模糊搜索 quikc~ brwn~ foks~ ~:在一个单词后面加上~启用模糊搜索,可以搜到一些拼写错误的单词 first~ 这种也能匹配到 frist 还可以设置编辑距离(整数),指定需要多少相似度 cromm~1 会匹配到 from 和

编写/输出未转义的HTML字符串

时间秒杀一切 提交于 2020-02-26 03:27:02
我已经将安全/经过消毒的HTML保存在数据库表中。 如何在Razor视图中写出HTML内容? 它始终会转义 < 和&字符等转义符 & 。 #1楼 您可以使用 @{ WriteLiteral("html string"); } #2楼 您可以像这样将字符串放入控制器的viewdata中: ViewData["string"] = DBstring; 然后像这样在视图中调用该viewdata: @Html.Raw(ViewData["string"].ToString()) #3楼 有时使用原始html可能很棘手。 主要是因为XSS漏洞。 如果这是一个问题,但是您仍然想使用原始html,则可以对这些令人恐惧的部分进行编码。 @Html.Raw("(<b>" + Html.Encode("<script>console.log('insert')</script>" + "Hello") + "</b>)") 结果是 (<b><script>console.log('insert')</script>Hello</b>) #4楼 假设您的内容在名为 mystring 的字符串中... 您可以使用: @Html.Raw(mystring) 或者,您可以将字符串转换为 HtmlString 或任何其他在模型中或直接内联实现 IHtmlString 类型,并使用常规 @ : @{ var

如何在String.Format中转义%?

江枫思渺然 提交于 2020-02-26 01:01:37
我将SQL查询存储在我的strings.xml文件中,并且我想使用 String.Format 在代码中构建最终的字符串。 SELECT 语句使用like,如下所示: SELECT Field1, Field2 FROM mytable WHERE Field1 LIKE '%something%' 为了格式化,我将“ something”替换为%1 $ s,因此它变为: SELECT Field1, Field2 FROM mytable WHERE Field1 LIKE \'%%1$s%\' 我用反斜杠转义了单引号。 但是,我无法逃脱%符号。 如何在我的strings.xml文件中包含一个like语句? #1楼 为了补充先前说明的解决方案,请使用: str = str.replace("%", "%%"); #2楼 这是更强大的正则表达式替换,不会替换输入中已加倍的%%。 str = str.replaceAll("(?:[^%]|\\A)%(?:[^%]|\\z)", "%%"); #3楼 我不敢相信现在这不是一个简单的解决问题,但是,嘿,这是我要解决的问题 (?:[^%]|^)(?:(%%)+|)(%)(?:[^%]) 要在将消息传递给String.format之前对其进行清理,可以使用以下命令 Pattern p = Pattern.compile("(?:[^%]|^

echo命令详解

和自甴很熟 提交于 2020-02-25 23:37:47
echo命令是Linux中最基础的命令,也是很常用的命令,特别是在写shell脚本的时候,可能会经常被用到,虽然echo命令非常基础,但是功能还算丰富,此处对echo命令的常用方法进行总结,并给出示例,方便记忆与回顾。 echo命令的基本用法,很简单,就是echo后面跟上要输出的文本,如下。 除了基本用法,还可以配合一些选项使用 echo -n 表示不换行输出 可以看到,如果不添加-n选项,文本输出之后,指定换行了,而添加了-n选项,文本直接连接命令提示符输出了,并没有换行,这样演示效果不明显,我们还可以同时echo两条信息,效果比较明显,示例如下。 当使用echo输出命令替换后的内容时,命令执行结果的格式可能会发生变化,比如,如果我们想要输出ifconfig命令执行后的结果,我们可能会使用如下命令 但是我们发现,这样输出的文本的格式发生了变化,这样可能不是我们想要的,因为当我们直接执行ifconfig命令时,ifconfig返回的结果是多行的,可是当我们使用echo输出的时候,格式发生变化,如果想要按照命令执行后的原格式输出命令替换后的结果,可以使用如下方法,如下方法在写脚本的时候可能会用到。 我们可以使用-e选项输出转义字符,比如常用的转义字符"\t" 转义字符"\t"表示制表符,作用相当于我们键盘上的tab键。 我们可以使用echo -e 输出转义字符

FreeMarker(七)Html转义

筅森魡賤 提交于 2020-02-25 01:15:49
在不做任何处理的情况下,往页面传一串Html代码,它会嵌套到页面代码中,一起被编译并且显示。 比如:某个用户把自己的用户名写成a标签,最后显示出来的用户名就是一个超链接 例: //传递的参数 map.put("sp6", "这是一段带有攻击性的字符串<a href='https://www.baidu.com/'>请点击</a>"); 1 2 页面代码: <html> <head> <meta charset="utf-8"> <title>进度条测试</title> <script type="text/javascript" src="../js/jquery-1.11.1.min.js"></script> </head> <body> ${map.sp6} <br/> </body> 页面显示: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JPnC2k64-1570546997250)(/uploads/201710/attach_14eeea087b1c4fc8.png “aaaaa”)] 有两种解决方案: 1.在字符串后面加?html ${map.sp6?html} 2.使用<#escape>转义 值得注意的就是,<#escape>仅仅只对当前文件中的值做转义,而不会去处理嵌套的其它文件(Include)和宏 <#--

php代码审计学习之dvwa_sql

感情迁移 提交于 2020-02-24 22:53:08
0x00   由于转了onenote行列,所以已经好久没有发表新的随笔了,但是想想还是非常有必要的,这几天开始学习php代码审计,所以先开始发这一些的随笔吧!   首先就先通过十大测试平台dvwa开始学习吧,先在这里带上参考的大牛链接,感谢分享   1.http://drops.wooyun.org/papers/483   2.http://www.lxway.com/86980986.htm is_numeric 函数绕过   3.http://www.cnblogs.com/Safe3/archive/2008/08/22/1274095.html 字符编码绕过 宽字节注入 0x01   这里先带入最简单low级别的php代码      $id = $_GET['id'];//未作任何过滤,防注入处理 $getid = "SELECT first_name, last_name FROM users WHERE user_id = '$id'"; $result = mysql_query($getid) or die('<pre>' . mysql_error() . '</pre>' );   看到这里我们可以知道这段代码其实 对 id 没有进行处理,导致 sql 注入漏洞,ok,各种注入都可以,在这里就不再详叙了! 0x02   medium级别,代码:   $id=$

《Linux C一站式编程》笔记

寵の児 提交于 2020-02-24 18:18:05
C语言入门 如果在字符串中表示单引号和问号,既可以使用转义序列'和?,也可以直接使用字符'和。而要表示\或"则必须使用转义序列,因为\字符表示转义而不表示它的字面含义,"表示字符串的界定符而不表示它的字面含义。 假设变量x和n是两个正整数,我们知道x/n这个表达式的结果要取Floor,例如x是17,n是4,则结果是4。如果希望结果取Ceiling应该怎么写表达式呢?例如x是17,n是4,则结果是5;x是16,n是4,则结果是4。 答: (x+n-1)/n (1)设x=kn,k为整数,即x为n的整数倍。则(x+n-1)/n=(kn+n-1)/n=((k+1)n-1)/n,此时分子没有达到n的k+1倍,但大于等于n的k倍, 默认计算取下整则为k。符合要求。 (2)设x=kn+m,k为整数,m为整数且0<m<n。则(x+n-1)/n=(kn+m+n-1)/n=((k+1)n+m-1)/n。此时分子的大于等于(k+1)n,小于(k+2)n,按照默认计算应该为k+1。符合要求。 来源: https://www.cnblogs.com/devilchew/p/4126365.html

正则表达式

此生再无相见时 提交于 2020-02-23 11:54:05
非打印字符也可以是正则表达式的组成部分。下表列出了表示非打印字符的转义序列: 字符 描述 \cx 匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。 \f 匹配一个换页符。等价于 \x0c 和 \cL。 \n 匹配一个换行符。等价于 \x0a 和 \cJ。 \r 匹配一个回车符。等价于 \x0d 和 \cM。 \s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。 \S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。 \t 匹配一个制表符。等价于 \x09 和 \cI。 \v 匹配一个垂直制表符。等价于 \x0b 和 \cK。 特殊字符 所谓特殊字符,就是一些有特殊含义的字符,如上面说的?runoo*b?中的?*,简单的说就是表示任何字符串的意思。如果要查找字符串中的?*?符号,则需要对?*?进行转义,即在其前加一个?\:?runo\*ob?匹配 runo*ob。 许多元字符要求在试图匹配它们时特别对待。若要匹配这些特殊字符,必须首先使字符"转义",即,将反斜杠字符\?放在它们前面。下表列出了正则表达式中的特殊字符: 特别字符 描述 $ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性