转义

PHP基础入门

断了今生、忘了曾经 提交于 2019-12-01 09:11:16
变量和作用域 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。 static作用域 保持某个局部变量不被删除 参数作用域 echo和print echo - 可以输出一个或多个字符串 print - 只允许输出一个字符串,返回值总为 1(自带换行) 提示: echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。 PHP中的EOF 必须后接分号,否则编译通不过。 EOF 可以用任意其它字符代替,只需保证结束标识与开始标识一致。 结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。 开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。 当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义,此处相当与q和qq的用法。 常用大写的 EOT、EOD、EOF 来表示,但是不只限于那几个(也可以用:JSON、HTML等),只要保证开始标记和结束标记不在正文中出现即可。 位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在 heredoc 中,变量不需要用连接符 . 或 , 来拼接 数据类型 var_dump()返回变量的类型和值 数组: $x =

【转】【bat】Bat 中特殊符号

烈酒焚心 提交于 2019-12-01 09:00:45
批处理、 Bat 中特殊符号的实际作用,Windows 批处理中特殊符号的作用: @ \\隐藏命令的回显。 ~ \\在for中表示使用增强的变量扩展; 在set中表示使用扩展环境变量指定位置的字符串; 在set/a中表示按位取反。 % \\使用两个%包含一个字符串表示引用环境变量。比如一个%time%可以扩展到当前的系统时间; 单个%紧跟0-9的一个数字表示引用命令行参数; 用于for中表示引用循环变量; 连续的两个%表示执行时脱为一个%。 ^ \\取消 转义字符 ,即将所有 转义字符 的转义作用关闭。比如要在屏幕显示一些特殊的字符,比如> >> | ^等时,就可以在其前面加一个^符号来显示这个^后面的字符了,^^就是显示一个^,^|就是显示一个|字符了; 在set/a中是按位异; 在findstr/r的[]中表示不匹配指定的字符集。 & \\命令连接字符。比如我要在一行文本上同时执行两个命令,就可以用&命令连接这两个命令; 在set/a中是按位与。 * \\代表任意个任意字符,就是我们通常所说的"通配符";比如想在c盘的根目录查找c盘根目录里所有的文本文件(.txt),那么就可以输入命令"dir c:\*.txt"; 在set/a中是乘法。比如"set/a x=4*2",得到的结果是8; 在findstr/r中表示将前一个字符多次匹配。 () \

08-Django模板(2)

喜欢而已 提交于 2019-12-01 07:05:45
一、HTML转义   在视图中,通过调用模板传递下文,模板对上下文的传递字符串进行输出时,会对以下字符自动转义。HTML转义的作用:转义后标记代码不会被直接解释执行,而是被直接呈现,防止客户端通过嵌入js代码攻击网站。 小于号 < 转换为 < 大于号 > 转换为 > 单引号 ' 转换为 ' 双引号 " 转换为 " 与符号 & 转换为 & HTML转义演示: 匹配URL: path('zhuanyi/', views.zhuanyi), 视图: def zhuanyi(request): content = {"text":"<h1>标题一</h1>"} #调用模板传入HTML字符串 return render(request,"Book/zhuanyi.html",content) 模板: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>转义演示</title> </head> <body> <p>{{ text }}</p> </body> </html> 结果: 我们在视图传入的HTML标签没有被浏览器执行,就是为了防止js攻击。在模板渲染的时候进行了转义,这样浏览器就不会认出来是专属的标签啦。 禁止HTML转义 {{变量|escape}} 过滤器escape可以实现对变量的HTML转义

bash PS1配色

心已入冬 提交于 2019-12-01 07:00:04
bash的命令提示符和终端外观由环境变量PS1定义 PS1 在每个命令之前显示的主提示符,因此它是每个人都不同的。 PS2 当一个命令需要更多的输入(例如,一个多行命令)中显示的辅助提示。 PS3 不是很常用。 PS4 也是不常用。 PS1格式 \u 表示用户(username); \h 表示主机(hostname); \w 表示当前工作目录(directory); \$ 如果您不是超级用户 (非root),则插入一个 "$";如果您是超级用户(root),则显示一个 "#"。 \[ 这个字符应该出现在不占位转义字符(如颜色转义字符)之前,它使bash能够正确计算自动换行; \] 这个字符应该出现在不占位转义字符(如颜色转义字符)之后; \e ASCII转义字符序列开始(也可以键入 \033); \a ASCII响铃字符(也可以键入 \007); \d "Wed Sep 06"格式的日期; \H 主机的全称(如 "mybox.mydomain.com"); \j 在此shell中通过按 ^Z挂起的进程数; \l 此shell的终端设备名 (如"ttyp4"); \n 换行符; \r 回车符; \s shell的名称(如 "bash"); \t 24小时制时间(如 "23:01:01"); \T 12小时制时间(如 "11:01:01"); \@ 带有 am/pm的 12小时制时间;

Python字符串详解

ⅰ亾dé卋堺 提交于 2019-12-01 06:59:14
简单地理解,字符串就是“一串字符”,也就是用引号包裹的任何数据,比如“Hello,Charlie”是一个字符串,“12345”也是一个字符串。 Python 要求,字符串必须使用引号括起来,可以使用单引号或者双引号,只要成对即可。字符串中的内容几乎可以包含任何字符,英文字符也行,中文字符也行。 Python 3.x 对中文字符支持较好,但 Python 2.x 则要求在源程序中增加“#coding:utf-8”才能支持中文字符。 至于字符串是用单引号括起来,还是用双引号括起来,在 Python 语言中,它们没有任何区别。比如说: str1 = 'c.biancheng.net' str2 = " C语言 中文网" print (str1 ) print (str2 ) 但需要说明的是,Python 有时候没有我们期望的那么聪明。如果字符串内容本身包含了单引号或双引号,此时就需要进行特殊处理: 使用不同的引号将字符串括起来。 对引号进行转义。 先看第一种处理方式。假如字符串内容中包含了单引号,则可以使用双引号将字符串括起来。例如: str3 = 'I'm a coder' 由于上面字符串中包含了单引号,此时 Python 会将字符串中的单引号与第一个单引号配对,这样就会把 'I' 当成字符串,而后面的 m a coder' 就变成了多余的内容,从而导致语法错误。 为了避免这种问题

【网络安全】给你讲清楚什么是XSS攻击

杀马特。学长 韩版系。学妹 提交于 2019-12-01 02:08:24
1. 什么是XSS攻击 时光小说 www.youxs.org 跨站脚本攻击(Cross Site Scripting)本来的缩写为CSS,为了与层叠样式表(Cascading Style Sheets,CSS)的缩写进行区分,将跨站脚本攻击缩写为XSS。因此XSS是跨站脚本的意思。 XSS跨站脚本攻击(Cross Site Scripting),的本质是攻击者在web页面插入恶意的script代码(这个代码可以是JS脚本、CSS样式或者其他意料之外的代码),当用户浏览该页面之时,嵌入其中的script代码会被执行,从而达到恶意攻击用户的目的。比如读取cookie,session,tokens,或者网站其他敏感的网站信息,对用户进行钓鱼欺诈等。比较经典的事故有: 2011年6月28日,新浪微博被XSS攻击,大量用户自动转发微博、私信。自动关注用户,大量用户被莫名其妙地控制。因为可以使用JS代码代替用户单击按钮发送请求,所以损坏非常大。 1.1 XSS攻击的危害 通过 document.cookie 盗取 cookie中的信息 使用 js或 css破坏页面正常的结构与样式 流量劫持(通过访问某段具有 window.location.href 定位到其他页面) dos攻击:利用合理的客户端请求来占用过多的服务器资源,从而使合法用户无法得到服务器响应。并且通过携带过程的

【网络安全】给你讲清楚什么是XSS攻击

泪湿孤枕 提交于 2019-11-30 22:54:46
1. 什么是XSS攻击 跨站脚本攻击(Cross Site Scripting)本来的缩写为CSS,为了与层叠样式表(Cascading Style Sheets,CSS)的缩写进行区分,将跨站脚本攻击缩写为XSS。因此XSS是跨站脚本的意思。 XSS跨站脚本攻击(Cross Site Scripting),的本质是攻击者在web页面插入恶意的script代码(这个代码可以是JS脚本、CSS样式或者其他意料之外的代码),当用户浏览该页面之时,嵌入其中的script代码会被执行,从而达到恶意攻击用户的目的。比如读取cookie,session,tokens,或者网站其他敏感的网站信息,对用户进行钓鱼欺诈等。比较经典的事故有: 2011年6月28日,新浪微博被XSS攻击,大量用户自动转发微博、私信。自动关注用户,大量用户被莫名其妙地控制。因为可以使用JS代码代替用户单击按钮发送请求,所以损坏非常大。 1.1 XSS攻击的危害 通过 document.cookie 盗取 cookie中的信息 使用 js或 css破坏页面正常的结构与样式 流量劫持(通过访问某段具有 window.location.href 定位到其他页面) dos攻击:利用合理的客户端请求来占用过多的服务器资源,从而使合法用户无法得到服务器响应。并且通过携带过程的 cookie信息可以使服务端返回400开头的状态码

js防止注入实现

我与影子孤独终老i 提交于 2019-11-30 21:59:08
今天其他项目组同事过来问过我是否遇到过这种情况? 场景 :在项目input框中输入含有script标签包含的脚本,提交后却意外的被执行了。(所有恶意攻击的脚本标签) 问题 :HTML没有进行转义的发送,会导致回显或者提交的时候html语义无法解释 < 和 > 符号,认为其是标签。故进行标签模式的渲染。 解决 :每次发送前对输入的字符串进行特殊符号的转义,避免html标签符号和特殊符号给解释器造成冲突。从而导致XSS的恶意脚本攻击。 下面附上防止js脚本注入的源码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <textarea id="textarea" style="width:300px;height:100px;"></textarea> <button id="getValue" onclick="getVal()">获取</button> <button id="setValue" onclick="setVal()">赋值</button> </body> <script> var $ = document.getElementById('textarea'); var _val = ''; function getVal(){ _val =

【前端工程师】 web 安全问题

淺唱寂寞╮ 提交于 2019-11-30 21:13:05
Web 安全 一、 你所了解到的 Web 攻击技术 (1) XSS 攻击 (2) CSRF 攻击 (3) 网络劫持攻击 (4) 控制台注入代码 (5) 钓鱼 详细参见: http :// blog . csdn . net / fengyinchao / article / details /52303118 二、 如何防止 XSS 攻击? (1) 将前端输出数据都进行转义 (2) 将输出的字符串中的 \ 反斜杠进行转义 (3) 从 url 中获取的信息,防止方法是由后端获取,在前端转义后再行输出 (4) 使用 cookie 的 HttpOnly 属性,保护好 cookie 详细参见: http :// blog . csdn . net / fengyinchao / article / details /52303118 三、 项目中有没有用过加密,哪种加密算法? 项目中没有用过,但我了解几个加密算法: (1) RSA 加密 (2) MD 5 加密 (3) SHA 256 加密 四、 聊 — 聊网页的分段传输与渲染 从下面几个方面说: (1) CHUNKED编码 (2) BIGPIPE (3) 分段传输与 bigpipe 适用场景 详细参见: https :// segmentfault . com / a /1 190000005989601 ? ea =984496 五、

go中的转义字符和注释

☆樱花仙子☆ 提交于 2019-11-30 19:53:52
Go语言的转义字符(escape char) 说明:常用的转义字符有如下: 1) \t: 表示一个制表符,通常使用它可以排版。 2) \n :换行符 3) \ :一个 4) " :一个" ​ 因为在go语言里,只有双引号,如果你想在输出内容中打出双引号,就得用转义字符,不像在python里面,你可以用单引号括住外面,里面用双引号。 5) \r :一个回车 fmt.Println("天龙八部雪山飞狐\r 张飞"); ​ 这个有点类似python里面的 \r ,每次都覆盖上一次输出的内容。 ​ 在go里也是覆盖,不过每次只能覆盖本身的长度,比如这个输出就是“张飞八部雪山飞狐” 注释 在Golang中注释有两种形式 1)行注释 基本语法: // 注释内容 在每一行的前面加上两个斜杆就可以注释这一行了。 ctrl + / 就会把你选中的多行代码全都注释。 2)块注释 基本语法:/* ​ 注释内容 ​ */ 这就相当于python里的“”“ 多行注释内容 ”“” 注:块注释里面不能有块注释,也就是说不能有嵌套 go语言规范的代码风格 1、官方推荐我们是用行注释 2、要有正确的缩进和空白 (比如说运算符左右都应该加一个空格,让代码更清晰) 3、Go 语言的代码风格. 正确代码风格 package main import"fmt" funcmain(){ fmt.Println("hello