php加密

PHP代码审计

て烟熏妆下的殇ゞ 提交于 2019-12-24 00:38:38
转: http://www.sectop.com/?p=111 2011 年 2 月 13 日 文档去年做的,按说应该更新了,写得不咋好,有些没写全,参考了很多文档。 话说owasp codereview,也该出2.0了。 牛们路过,给提点建议。 目录 1. 概述 3 2. 输入验证和输出显示 3 2.1 命令注入 4 2.2 跨站脚本 4 2.3 文件包含 5 2.4 代码注入 5 2.5 SQL 注入 6 2.6 XPath 注入 6 2.7 HTTP 响应拆分 6 2.8 文件管理 6 2.9 文件上传 7 2.10 变量覆盖 7 2.11 动态函数 7 3. 会话安全 8 3.1 HTTPOnly 设置 8 3.2 domain 设置 8 3.3 path 设置 8 3.4 cookies 持续时间 8 3.5 secure 设置 8 3.6 session 固定 9 3.7 CSRF 9 4. 加密 9 4.1 明文存储密码 9 4.2 密码弱加密 9 4.3 密码存储在攻击者能访问到的文件 9 5. 认证和授权 10 5.1 用户认证 10 5.2 函数或文件的未认证调用 10 5.3 密码硬编码 10 6. 随机函数 10 6.1 rand() 10 6.2 mt_srand() 和 mt_rand() 11 7. 特殊字符和多字节编码 11 7.1 多字节编码 11

PHP代码审计基础-初级篇

雨燕双飞 提交于 2019-12-22 04:17:17
对于php代码审计我也是从0开始学的,对学习过程进行整理输出沉淀如有不足欢迎提出共勉。对学习能力有较高要求,整个系列主要是在工作中快速精通php代码审计,整个学习周期5天 ,建议花一天时间熟悉php语法。 我是直接phpstudy2019一键搭建小白首选 所谓工欲善其事必先利其器,找一款适合自己的php开发工具自行百度搭建,我用的是phpstrom . 初级篇主要讲 1. php历史版本漏洞。 2. 变量配置缺陷。 3. 函数缺陷。 4. 弱语言缺陷。 PHP配置漏洞 我们要熟知php各版本漏洞 Register_globals 全局变量注册开关 在该选项为on情况下,会直接把用户GET,POST等方式提交的参数注册成全局变量并初始化值为参数对应的值 Php小于4.2.3默认打开 5.3废弃 5.4移除 Allow_url_include 是否允许包含远程文件 Php 5.2 后默认设置off Magic_quotes_gpc 魔术引号自动过滤 会自动在get post,cookie 变量对单引号,双引号,反斜杠,空字符的前面加反斜杠 缺陷不会过滤$_SERVER 变量 Php5.3后废弃,5.4移除 小于4.2.3 默认打开 Magic_quotes_runtime 魔术引号自动过滤 和上面一样 却是对从数据库取出的数据进行转义 防止二次注入 同样在5.4取消 Safe_mode

PHP中String字符串处理函数完整版

ⅰ亾dé卋堺 提交于 2019-12-15 20:06:33
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 文章来源:PHP开发学习门户 我的原创地址: http://www.phpthinking.com/archives/602 开发习惯常用字符串处理函数梳理: strtr() 转换字符串中特定的字符。 substr() 返回字符串的一部分。 strstr() 搜索字符串在另一字符串中的首次出现(对大小写敏感) str_replace() 替换字符串中的一些字符。(对大小写敏感) strcmp() 比较两个字符串。(对大小写敏感) strlen() 返回字符串的长度。 substr_count() 计算子串在字符串中出现的次数。 substr_replace() 把字符串的一部分替换为另一个字符串 implode() 把数组元素组合为一个字符串。 explode() 把字符串用指定分隔符分割成一个数组 json_encode() 将数组解析成json形式的字符串 json_decode() 将json字符串解析成数组元素 String字符串处理函数详细列表: addcslashes() 在指定的字符前添加反斜杠。 addslashes() 在指定的预定义字符前添加反斜杠。 bin2hex() 把 ASCII 字符的字符串转换为十六进制值。 chop() rtrim() 的别名。 chr() 从指定的 ASCII

针对windows系统如何解决openssl_pkey_export(): cannot get key from parameter 1这个问题

血红的双手。 提交于 2019-12-14 23:35:52
为了解决这个问题我百度了很多方法,可是很多方法并没有效果。 方法一: 如果你安装的是phpstudy这个集成环境,那么 1、你就要去php拓展里面去打开php_opemssl中打开这个扩展。 2、去php.ini里面设置,把“extension=php_openssl.dll”前面的“;”去掉,如果没有这个就添加extension=php_openssl.dll这个。 3、复制php安装目录中的: libeay32.dll、ssleay32.dll至c:\windows\system32(如果是apache这两个文件在E:\phpStudy\PHPTutorial\php\php-7.0.12-nts)。 4、复制php_openssl.dll至c:\windows\system32(如果是apache,那么这个文件在E:\phpStudy\PHPTutorial\php\php-7.0.12-nts\ext)。 5、重启IIS或者apache环境 如果方法一还是没有用,那么你可以在环境变量中去添加一个变量试试看, This may help if you are on windows: Click on the START button Click on CONTROL PANEL Click on SYSTEM AND SECURITY Click on SYSTEM

PHP 学习笔记

风流意气都作罢 提交于 2019-12-14 19:07:04
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1.常用方法 ini_set('display_errors',1); // 如果出现错误,将错误信息在页面显示出来 error_reporting(E_ALL | E_STRICT);// 显示所有的错误信息 // 去除字符串中的换行符 $posting = nl2br($_POST['posting']); // 将特定html标签转换为实体版本 $posting = htmlspecialchars($_POST['posting'],特定的html标签); // 将所有html标签转换为实体版本 $posting = htmlentities($_POST['posting']); // 移除所有的html和php标签 $posting = strip_tags($_POST['posting']); // 将任意值传送到php脚本(将值完全转换为适合作为url的一部分传输) urlencode(); 注意: PHP中字符串的连接用 " . " PHP中如果用双引号来连接变量,只会将其视为一个字符串,连接变量用单引号 如:$name1 = "test"; $name2 = "value"; $name = "$name1 $name2"; $nameValue = '$name1 $name2'; 其中

PHP_常用字符串处理函数_简介

北城以北 提交于 2019-12-14 18:38:05
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> addcslashes — 为字符串里面的部分字符添加反斜线转义字符 addslashes — 用指定的方式对字符串里面的字符进行转义 bin2hex — 将二进制数据转换成十六进制表示 chop — rtrim() 的别名函数 chr — 返回一个字符的ASCII码 chunk_split — 按一定的字符长度将字符串分割成小块 convert_cyr_string — 将斯拉夫语字符转换为别的字符 convert_uudecode — 解密一个字符串 convert_uuencode — 加密一个字符串 count_chars — 返回一个字符串里面的字符使用信息 crc32 — 计算一个字符串的crc32多项式 crypt — 单向散列加密函数 echo — 用以显示一些内容 explode — 将一个字符串用分割符转变为一数组形式 fprintf — 按照要求对数据进行返回,并直接写入文档流 get_html_translation_table — 返回可以转换的HTML实体 hebrev — 将Hebrew编码的字符串转换为可视的文本 hebrevc — 将Hebrew编码的字符串转换为可视的文本 html_entity_decode — htmlentities ()函数的反函数

PHP学习资源整理

戏子无情 提交于 2019-12-14 12:05:40
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 学习资源 PHP相关的有参考价值的社区,博客,网站,文章,书籍,视频等资源 PHP网站(PHP Websites) PHP The Right Way 一个PHP实践的快速参考指导 PHP书籍(PHP Books) Modern PHP – 作者是 PHP 之道 的发起人和 Slim框架 的作者 Modern PHP(中文版) 依赖管理( Dependency Management ) 用于依赖管理的包和框架 Composer / Packagist – 一个包和依赖管理器. Composer Installers – 一个多框架Composer库安装器 pickle – PHP扩展安装器 Melody – A tool to build one file Composer scripts. 框架( Frameworks ) Web开发框架 Symfony2 – 由独立组件构成的框架(SP2) Zend Framework 2 – 同样是由独立组件构成的框架(ZF2) Laravel 5 – 简洁优雅的PHP Web开发框架(L5) Aura PHP – 独立组件的框架 Yii2 – 用于开发大型Web应用的高性能PHP框架 Nette – 同样是由独立组件构成的框架 PPI Framework 2 –

php笔记

℡╲_俬逩灬. 提交于 2019-12-14 04:31:29
php笔记 echo implode($arr1),PHP_EOL; echo md5_file(“1.php”),PHP_EOL; 用md5加密1.php的文件内容 s t r = " a s s i c " ; e c h o c o n v e r t u u e n c o d e ( str ="assic"; echo convert_uuencode( s t r = " a s s i c " ; e c h o c o n v e r t u ​ u e n c o d e ( str); convert转码 KaTeX parse error: Expected 'EOF', got '&' at position 9: str1 = "&̲87-S97)T`"; ech… str); decode解码 s t r = " 123. c o m " ; e c h o s t r r e p l a c e ( " c o m " , " n e t " , str ="123.com"; echo str_replace("com","net", s t r = " 1 2 3 . c o m " ; e c h o s t r r ​ e p l a c e ( " c o m " , " n e t " , str); //搜索com替换:net 在

常用的字符串函数

感情迁移 提交于 2019-12-13 05:16:06
以下每个内容都包含源代码及输出结果 1.mb_strlen :长度计算 <?php echo mb_strlen('asdsad'); 2.addslashes :将预定义的字符添加反斜杠转义 <?php echo addslashes("''"); 3.bin2hex:将2进制字符串转换为16进制 <?php echo bin2hex("w655sss"); 4.hex2bin:将16进制字符串转换为2进制 <?php echo hex2bin("77363535737373"); 5.chop :移除字符串右侧的空白字符或者其他字符,这些字符需要自己指定的,默认就是空白字符 <?php echo chop("tgdff","ff"); 6.chr:将指定的ascii值转换成字符 <?php $str=chr(104).chr(101).chr(108).chr(108). chr(111).chr(119).chr(111).chr(114). chr(108).chr(100).chr(33).chr(126); echo $str; echo "<br>"; 7.crypt:对字符串单项加密,不可逆转。 <?php $mima=crypt("asdasd",'$1$asdasdsad'); echo $mima; 8.htmlentities:将字符串转换为html实体 <

PHP安全配置 上传文件(转)

浪尽此生 提交于 2019-12-11 15:24:09
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 5、文件上传 php的文件上传机制是把用户上传的文件保存在php.ini的upload_tmp_dir定义的临时目录(默认是系统的临时目录,如:/tmp)里的一个类似phpxXuoXG的随机临时文件,程序执行结束,该临时文件也被删除。PHP给上传的文件定义了四个变量:(如form变量名是file,而且register_globals打开) $file #就是保存到服务器端的临时文件(如/tmp/phpxXuoXG ) $file_size #上传文件的大小 $file_name #上传文件的原始名称 $file_type #上传文件的类型 推荐使用: $HTTP_POST_FILES['file']['tmp_name'] $HTTP_POST_FILES['file']['size'] $HTTP_POST_FILES['file']['name'] $HTTP_POST_FILES['file']['type'] 这是一个最简单的文件上传代码: //test_5.php if(isset($upload) && $file != "none") { copy($file, "/usr/local/apache/htdocs/upload/".$file_name); echo "文件".$file_name