本文分享的是graph.facebook.com中存在的反射型XSS漏洞,攻击者利用该漏洞可以构造恶意链接引诱受害者访问,添加账户绑定邮箱或手机号,从而实现对受害者Facebook账户的劫持。...漏洞情况 该漏洞只在IE和Edge浏览器中有效,漏洞原因在于graph.facebook.com中的某些API端点,在处理HTML代码响应时未实施完善安全的转义措施。...漏洞复现 1、首先,我们发送以下上传方式的POST请求: POST /app/uploads Host: graph.facebook.com access_token=ACCESS_TOKEN&file_length...=100&file_type=PAYLOAD 其中的ACCESS_TOKEN是由Facebook for Android的第一方应用生成的有效用户访问令牌,PAYLOAD则是我们想插入的HTML代码,用于后续引诱受害者在浏览器中执行...,https://DOMAIN.com/script.js中的脚本文件将帮助我窃取受害者的“fb_dtsg” CSRF token,并且可向https://www.facebook.com/api/graphql
PHP中的Tidy扩展是一个用于清理和修复HTML和XML文档的工具。它能够分析混乱或不规范的HTML代码,并尝试将其修复为标准的HTML或XHTML格式。...这使得Tidy在PHP开发中特别有用,可以确保生成的HTML文档符合标准并且易于处理。 第一步:请先开启tidy php扩展 php // 示例HTML内容,包含混乱的格式 $html = " 中的错误和不一致之处。 output-xhtml:布尔值选项,指示是否将输出格式化为XHTML格式。...在这个示例中,设置为 true,因此输出将符合XHTML的规范。
PHP中的文件对比扩展 文件对比这个扩展现在用得比较少,因为大部分情况下我们都在使用一些代码管理工具,比如 Git 或者 Svn 之类的,其实它的作用就非常类似这类工具,另外还有一个非常常用的 Beyond...安装及准备工作 在 PHP 中的这个文件扩展叫做 xdiff 扩展,我们可以直接在 pecl 中下载并安装。...另外在二进制操作中还有一个函数 xdiff_string_bdiff_size() 用于返回二进制差异函数所返回的结果中的字符长度。...总结 关于这个 xdiff 扩展其实我们使用得并不多,不过曾经看过有一套开源的使用 PHP 来做的 CMS 系统中管理前端模板页面的功能中就使用到了这一套扩展。...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202010/source/10.PHP中的文件对比扩展.php 参考文档:
学习PHP中Fileinfo扩展的使用 今天来学习的这个扩展其实现在也已经是标配的一个扩展了,为什么呢?...我们使用一张图片进行测试,返回的可能扩展名就包括注释中展示的这些。 面向过程 针对上面面向对象的代码,我们也展示一下相同的操作使用面向过程的函数是如何运行的。...就像 mysqli 之类的扩展一样,finfo 中也是包含一个这样的函数的,并且只提供面向过程的这个函数,上面的 finfo 类中是没有这样一个 close() 方法的。...而通过 Fileinfo 扩展获得必须是本地或远程已经存在的文件,也就是说不会有上传过程中因为修改传输信息而产生的安全检查绕过问题。...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202010/source/5.学习PHP中Fileinfo扩展的使用.php
PHP 源码 为了保证 Docker 镜像尽量小,PHP 的源文件是以压缩包的形式存在镜像中,官方提供了 docker-php-source 快捷脚本,用于对源文件压缩包的解压(extract)及解压后的文件进行删除...PECL 扩展 因为一些扩展并不包含在 PHP 源码文件中,所有需要使用 PECL(PHP 的扩展库仓库,通过 PEAR 打包)。...其它扩展 一些既不在 PHP 源码包,也不再 PECL 扩展仓库中的扩展,可以通过下载扩展程序源码,编译安装的方式安装,如下示例: FROM php:5.6-apache RUN curl -fsSL...xcache 注意:官方提供的 docker-php-ext-* 脚本接受任意的绝对路径(不支持相对路径,以便与系统内置的扩展程序进行区分),所以,上面的例子也可以这样写: FROM php:5.6-...docker 中安装PHP扩展 可以通过两种方式实现 1.pecl pdo_msql 方式二: docker-php-ext-install pdo pdo_mysql 如果报 /usr/local
PHP中的IMAP扩展简单入门 对于邮件处理来说,大家比较熟悉的应该是 POP3 、 SMTP 这类的协议,而今天我们介绍的 IMAP 其实也是非常常用的一种邮件处理协议。...这篇文章我们就主要来学习一下 PHP 中的 IMAP 扩展的一些简单内容。 安装扩展 首先,就是安装 IMAP 的扩展。...这个扩展是随 PHP 源码包一起发布的,在编译的时候可以直接给 configure 添加 --with-imap 以及 --with-imap-ssl 就可以了。...如果是后期安装的话,直接在源码包的 ext 目录下找到 imap 目录就可以进去进行普通的扩展安装步骤了。 不过需要注意的是,IMAP 扩展是需要操作系统环境中也安装一些组件的。...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202012/source/6.PHP中的IMAP扩展简单入门.php 参考文档
学习PHP中的任意精度扩展函数 今天来学习的是关于数学方面的第一个扩展。对于数学操作来说,无非就是那些各种各样的数学运算,当然,整个程序软件的开发过程中,数学运算也是最基础最根本的东西之一。...; 通过这段代码大家应该就能清楚地看到 PHP 中的精度丢失问题是否存在了。...a7、a8 是加法的演示,怎么样,在 PHP 中,1.1+2.2 的结果其实也和 JS 中是一样的吧,通过 bcadd() 就可以处理加法的精度问题。...另外,关于 PHP 中精度问题相关的参考大家可以看看下方第二个链接中鸟哥博客上的说明。我们的例子 0.58 * 100 也是摘自他的博客中的示例。...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202012/source/7.学习PHP中的任意精度扩展函数.php 参考文档
学习了解PHP中的SeasLog日志扩展 今天来学习的扩展是和日志相关的一个扩展,对于 PHP 的日志应用来说,除了本身自带的 error_log() 、 syslog() 之外,在大多数的框架中还会经常见到...并且这个扩展也是收录在官方文档中的,下面是他的知乎主页的链接,大家可以去多多向大佬学习。...而 monolog 、 log4php 这类的日志程序在性能上又多少略有缺憾。正因为这些各种各样的原因,Neeke 大佬就开发了这个 SeasLog 扩展,为的就是解决上面这些日志相关系统的问题。...因为是我们国人开发的,所以它的中文文档很友好,在 Gibhub 和官方文档中都有详细的中文文档说明,非常方便我们使用。安装过程也和普通的 PHP 扩展没有区别,并不需要什么别的特殊的软件支持。...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/2021/01/source/2.学习了解PHP中的SeasLog日志扩展.
学习PHP中的iconv扩展相关函数 想必 iconv 这个扩展的相关函数大家多少都接触过,做为 PHP 的默认扩展它已经存在了很久,也是我们在操作字符编码时经常会使用的函数。...不过除了 iconv() 这个函数外,你还知道它的其它函数吗?今天,我们就来学习一下 iconv 扩展中的各种好玩的函数。...iconv 设置及获取信息 首先,就是我们可以设置 iconv 扩展中默认定义的输出和输出字符编码格式。...现在更推荐直接使用 php.ini 中的 default_charset 来进行设置。...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202011/source/2.学习PHP中的iconv扩展相关函数.php
学习PHP中YAML操作扩展的使用 YAML 这个东西,说实话,自己用得并不多。...我们今天来学习的主要是一个 PHP 中用来解析和转换 YAML 格式的扩展,安装过程并没有什么特别的可以说明的地方,就和其它的扩展一样进行安装即可。...但你会发现有很多教程或者框架中的 .yml 文件中是没有这些符号的,从官方文档中得知这些符号是建议写得,而我们的扩展则是非常地遵守建议,也就是转换的结果非常地标准。...此外,在测试代码中我们加入了中文的内容。可以看到直接转换的时候中文被编码了。就像 JSON 操作一样,在 YAML 这个扩展的函数中,我们也可以指定编码格式让中文原样显示。.../2021/01/source/10.学习PHP中YAML操作扩展的使用.php 参考文档: https://www.php.net/manual/zh/book.yaml.php http://www.rpmfind.net
学习了解PHP中Memcached扩展的使用 说实话,在目前的开发环境中,使用 Memcache 的项目还真的不多。在 Redis 大行其道的今天,Memcache 的衰退也可以说是大势所趋。...而 PHP 中的扩展我们可以选择 Memcached 和 Memcache 两种扩展包,现在比较推荐的是直接安装 Memcached 这个扩展。...它们两个其实没啥区别,这个缓存软件叫做 Memecahce ,但它的运行主程序叫做 Memcached ,而在 PHP 层面的话,Memcache 这个扩展是在 PHP 框架内部开发的,而 Memcached...->get("test2"), PHP_EOL; // 1 使用 increment() 和 decrement() 方法就可以实现对指定键的值的自增自减操作,这两个函数在 redis 中也是非常常用的...Memcache 扩展 上面我们使用的都是 Memcached 这个扩展,接下来我们再简单看一下 Memecache 的操作,其实都是差不多的,但其实 Memcached 扩展的功能会更丰富一些,也就是提供的方法函数更多一些
我们了解了常用的网络协议,今天我们来了解下socket服务。我们可以基于tcp和udp来实现我们的socket服务, 包括tcp即时通讯,udp即时通讯,websocket服务,http服务等。...我们可以通过一张图来了解socket的实现流程图。 ? 因为我们是使用PHP语言,所以我们先来了解一下PHP的socket扩展实现。...PHP有两个socket的扩展 sockets和streams 。...php class SocketService { private $address; private $port; private $_sockets; public $...* @param $msg 要发送的数据 * @return int|string */ public function send($newClinet, $
可以说它的祖先,也就是 MySQL(原始) 扩展是我们很多人刚开始学习 PHP 时连接数据库的入门导师。不过随着时代的变迁,MySQL(原始) 扩展在 PHP7 中已经被彻底废弃了。...当然,小众并不意味着不好,就像日常开发中,我们很少会在 PHP 环境中使用别的数据库,那么在自己的小项目中完全使用一套 MySQLi 来操作数据库反而更加地方便快捷。...扩展的安装及 MySQL8 需要注意的地方 MySQLi 的扩展是随 PHP 源码一起发布的,我们在编译 PHP 的时候加上 --with-mysqli 就可以了。...而 PHP7.2.4 之前的版本中的 MySQLi 会使用 mysql_native_password 来对连接密码进行加密,这样就会导致无法连接上数据库。...是我们针对老项目代码进行升级优化的好帮手。同时,它还是现在入门 PHP 学习相关数据库操作的首选。在接下来的文章中,我们将默认只使用 面向对象 式的写法来继续学习 MySQLi 扩展相关的知识。
在PHP中操作文件的扩展属性 在操作系统的文件中,还存在着一种我们可以自己定义的文件属性。这些属性不是保存在文件内容中,也不是直接可以通过 ls -al 所能看到的内容。...文件的扩展属性有命名空间的概念,PHP 中也相应地为我们提供了 普通(user)命名空间 和 XATTR_ROOT(root命令空间) 两种形式。...root 命名空间中的属性可以由超级用户设置,对其他用户不可见,而 user 命名空间则是根据文件的权限来定义的,也就是当前可以操作这个文件的用户就可以读取到这个文件的 user命名空间 所设置的这些扩展属性...总结 今天的内容非常地简单浅显,这个文件的扩展属性的功能说实话也是看到 PHP 中有这个功能扩展才回去查看了 Linux 系统中的相关文档。...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202010/source/9.在PHP中操作文件的扩展属性.php 参考文档
PHP中的MySQLi扩展学习(一)MySQLi介绍 关于 PDO 的学习我们告一段落,从这篇文章开始,我们继续学习另外一个 MySQL 扩展,也就是除了 PDO 之外的最核心的 MySQLi 扩展。...可以说它的祖先,也就是 MySQL(原始) 扩展是我们很多人刚开始学习 PHP 时连接数据库的入门导师。不过随着时代的变迁,MySQL(原始) 扩展在 PHP7 中已经被彻底废弃了。...扩展的安装及 MySQL8 需要注意的地方 MySQLi 的扩展是随 PHP 源码一起发布的,我们在编译 PHP 的时候加上 --with-mysqli 就可以了。...是我们针对老项目代码进行升级优化的好帮手。同时,它还是现在入门 PHP 学习相关数据库操作的首选。在接下来的文章中,我们将默认只使用 面向对象 式的写法来继续学习 MySQLi 扩展相关的知识。...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202009/source/4.PHP中的MySQLi扩展学习(一)MySQLi
参考资料 Meta自动刷新 Meta字符编码声明 meta搜索引擎索引规则 Open Graph协议是由Facebook推出的元数据协议 Meta Twitter 卡片 Meta 文档类型声明(DOCTYPE...)是HTML文档开头的声明 Meta 暗色模式适配 Meta标签禁止电话号码自动识别 简介: Open Graph协议是由Facebook推出的元数据协议,用于标准化网页内容在社交网络中的呈现方式。...功能: 控制内容在社交平台分享时的显示形式 定义丰富的分享预览(标题、描述、图片等) 支持内容类型标记(文章、视频、产品等) 实现跨平台内容一致性展示 基本语法: 注意事项: 图片推荐尺寸至少1200x630像素 必须包含title、type、url、image四个基本属性 URL需使用绝对路径 不同平台可能支持不同的扩展属性...可使用Facebook分享调试工具验证效果 内容更新后可能需要重新抓取才能生效
由于我们之前做token验证的时候,已经把取出来的信息存入到了flask的g中,所以我们只需要从g中取出来做判断即可 @api.route('', methods=['DELETE']) @auth.login_required...我们只要可以在视图函数中获取到用户的权限,就可以根据权限来判断,用户的身份,来做出不同的控制。...要做到这一点,我们只需要在生成令牌的时候,将is_admin的字段写入到token中。然后再视图函数中取出这个字段来进行不同的判断就好了。...当用户访问@auto.login的接口的话,他必须要带有一个token令牌中的,而我们是可以从token中读取到当前的权限种类的,并且我们是可以知道他所访问的接口的。...然后现在我们的is_in_scope只是简单的判断endpoint是否在scope.allow_api中,endpoint默认的形式是blueprint.view_func 的形式,我们可以自定义endpoint
学习PHP中好玩的Gmagick图像操作扩展的使用 在 PHP 的图像处理领域,要说最出名的 GD 库为什么好,那就是因为它不需要额外安装的别的什么图像处理工具,而且是随 PHP 源码一起发布的,只需要在安装...PHP 的时候添加上编译参数就可以了。...安装 首先,我们需要在系统中安装 GraphicsMagick ,然后再安装 PHP 中的 Gmagick 扩展。...同样地,要对图片进行其它操作也是直接在这个对象下面使用各种扩展库中提供的方法就可以了。 图片加边框 // 加边框 $image = new Gmagick('....测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202012/source/4.学习PHP中好玩的Gmagick图像操作扩展的使用
PHP中的MySQLi扩展学习(三)mysqli的基本操作 我们继续 MySQLi 扩展的学习,上篇文章中提到过,MySQLi 的扩展相对于 PDO 来说功能更加的丰富,所以我们依然还会在学习过程中穿插各种...MySQLi 中好玩的方法函数。...在日常的开发过程中,最好还是一条一条的语句来执行,避免出现各种无法查明的问题而影响我们正常的业务执行。至于到底要不要使用这个能力,还是大家仁者见仁智者见智了。...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202009/source/6.PHP中的MySQLi扩展学习(三)mysqli...的基本操作.php 参考文档: https://www.php.net/manual/zh/book.mysqli.php
这里以redis为例 工具 yum install autoconf 下载及编译 wget https://pecl.php.net/get/redis-5.3.4.tgz --no-check-certificate.../configure --with-php-config=/usr/bin/php-config make && make install 添加到php.ini vi php.ini 959 extension...=redis 重载php-fpm,使生效 service php-fpm reload