SQL注入——PHP(1)
2020-07-21 04:13
1216 查看
PHP代码审计中的SQL注入
危险编码行为
编码 | 详情 |
---|---|
$_GET | 预定义的 $_GET 变量用于收集来自 method=“get” 的表单中的值。从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送信息的量也有限制。 |
$_POST | 预定义的 $_POST 变量用于收集来自 method=“post” 的表单中的值。从带有 POST 方法的表单发送的信息,对任何人都是不可见的(不会显示在浏览器的地址栏),并且对发送信息的量也没有限制。注释:然而,默认情况下,POST 方法的发送信息的量最大值为 8 MB(可通过设置 php.ini 文件中的 post_max_size 进行更改)。 |
$_COOKIE | 存放通过HTTPcookie传递给当前脚本的变量。 |
$_REQUEST | 用于收集HTML表单提交的数据。 |
$_SERVER | 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。 |
$_GET_VARS | 与上含义相同,PHP4.1.0中已弃用 |
$_POST_VARS | 与上含义相同,PHP4.1.0中已弃用 |
$_COOKIE_VARS | 与上含义相同,PHP4.1.0中已弃用 |
$_REQUEST_VARS | 与上含义相同,PHP4.1.0中已弃用 |
$_SERVER_VARS | 与上含义相同,PHP4.1.0中已弃用 |
危险函数
函数 | 详情 |
---|---|
mysql_ query($sql) | 向当前使用的数据库发送一一个查询 |
mssql_ query($sql) | 向当前使用的数据库发送一一个查询 |
mysql_ query($db,$sql) | 选择一个数据库,在该数据库上执行一个查询 |
oci_parse($connection,$sql) | 在语句执行前对其进行解析 |
ora_parse($curosr,$sql) | 在语句执行前对其进行解析 |
mssql_bind(&stnt,’@params’,$variable,SQLVARCHAR,false,false,100) | 向存储过程添加一个参数 |
odbc_prepare($db,$sql) | 准备执行一条语句 |
odbc_exec($db,$sql) | 准备并执行一条SQL语句 |
pg_query($conn,$sql) | 执行一个查询,曾为pg_exec() |
pg_exec($conn,$sql) | 执行一个查询 |
pg_send_query($conn,$sql) | 发送一个异步查询 |
pg_send_query_prams($conn,$sql,$params) | 向服务器提交一个命令并分离参数,无需等待结果 |
pg_query_prams($conn,$sql,$params) | 向服务器提交一个命令并等待结果 |
pg_send_prepare($conn,“my_query”,‘SELECT * FROM table WHERE field=1’) | 发送一个请求以创建一条具有指定参数的预备语句,无需等待完成 |
pg_prepare($conn,“my_query”,‘SELECT * FROM table WHERE field=1’) | 发送一个请求以创建一条具有指定参数的预备语句并等待完成 |
pg_select($conn,$table_name,$assoc_array) | 根据指定的具有field=>value的assoc_array选择记录 |
pg_update($conn,$arr_update,$arr_where) | 用数据更新与制定条件匹配的记录 |
pg_insert($conn,$table_name,$assoc_array) | 将assoc_array的值插入到table_name指定的表中 |
pg_delete($conn,$table_name,$assoc_array) | 根据assoc_array中制定的键和值删除表中的记录 |
跟踪数据
推荐使用UNIX中国的GREP工具与AWK工具
审计流程中,可查看php.ini中的相关开关,如下表:
名称 | 作用 |
---|---|
register_globals | 负责将EGPCS变量注册成全局变量, PHP 4.2.0默认禁用了该功能 |
magic_quotes | 用来避开传递给应用的存在潜在危害的字符,包括单引号、双引号、反斜线和NULL字符,PHP5.3.0弃用了magic_ quotes 选项,而PHP 6.0.0将移除该选项 |
相关文章推荐
- php防止SQL注入详解及防范
- php防止sql注入示例分析和几种常见攻击正则表达式
- 一个PHP的SQL注入完整过程
- PHP "完美"的防XSS 防SQL注入的代码 喷
- php防止SQL注入详解及防范
- php自带的几个防止sql注入的函数
- PHP代码网站如何防范SQL注入漏洞攻击建议分享
- php中放置sql注入的几个函数
- CI框架全局防止SQL注入(防止XSS攻击)的方法 分类: php CI框架 防SQL注入 防XSS攻击 2014-02-10 17:04 918人阅读 评论(0) 收藏
- PHP sql注入漏洞修复(数字型)
- PHP防止SQL注入方法
- 如何在PHP中防止SQL注入?
- PHP中该怎样防止SQL注入?
- PHP如何防止SQL注入的问题
- php防止SQL注入详解及防范
- php自带的几个防止sql注入的函数
- PHP防止SQL注入方法
- 利用GBK双字节编码突破PHP单引号转义限制进行SQL注入:set names gbk导致的sql注入
- 在PHP中使用 mysqli 并防SQL注入
- ASP+PHP 标准sql注入语句(完整版)