WEB安全学习笔记之PHP

简介:动态脚本语言,在服务器上执行,可包含文本、HTML、JavaScript和PHP代码,返回纯HTML形式。

语法

在文档中任意位置,以<?php开始,以?>结束,扩展名为.php,

PHP文件通常包含HTML标签和PHP脚本,如:

 <!DOCTYPE html>
<html>
    <body>
        <?php 
            echo "hello world";
            print "hello world"    //print和echo都可输出语句,最后一行可不加分号
            var_dump()    //打印数据类型
        ?>
    </body>
</html>

变量

形式:$+名称(字母或下划线开头,不能空格,区分大小写)

数据类型

字符串:$x = "hello world"

整型:$x = 0x8c

浮点型:$x = 2.4e3

布尔型:TRUE FALSE

数组:$x = array("a","b","c");

循环

while(条件){
    循环体;
}
do
{
    循环体;
}
while(条件); 
 
​

函数

<? php
function add($x,$y){
    $total = $x+$y;
    return $total;
}

登录表单

前端:

<html>
    <title></title>
    <body>
        <form action="login.php" method="post">
          用户名:<input type="text" name ="id">
          密  码:<input type="password" name="pwd">
            <input type="submit" value="登录">
        </form>
        用户名
    </body>
</html>

后端:

<?php 
    $name = $POST['id'];
    $passwpord = $POST['pwd'];
    echo $name;
    

文件上传表单

前端index.html:

<html>
    <head>
        <title>1</title>
    </head>
    <body>
        <form action="welcome.php" method="POST" enctype="multipart/form-data">
            上传头像:<input type="file" name="filename">
            <input type="submit" value="提交">
        </form>
    </body>
</html>

后端welcome.php:

<?php
    $name = $_FILE['fname'];
    var_dump($_FILE['fname']);  //打印数据类型
    echo $name;
    ?>

连接数据库

<?php
    $host = "127.0.0.1";
    $username = "root";
    $password = "123456";
    $conn = mysql_connect($host,$username,$password);
    var_dump($conn);
    $sql = "show databases;";
    $res = mysql_query($sql,$conn);
    $res = mysqli_query($conn,$sql) 
    //注:mysqli时候$conn放置前方,musql时候参数放在后方
    var_dump = $res;
?>

创建数据库表

$sql = "create table player(name varchar(200),age int(10),num int(10))";
mysql_query($sql,$conn);

插入字段

$sql = "insert into player(name,age,num) values('james',38,23)";
mysql_query($sql,$conn);

删除字段

$sql = "delete from player where name = '库名'";
mysql_query($sql,$conn);

查询

$sql = "select * from players";
musql_query($sql,&conn);
//mysql_fetch_assoc():将查询的数据作为关联数组进行返回
//musql_num_rows():获取查询到的行数-整型

数据库相关概念

常用命令:

select * from players;  //查询
select * from players where id = 1; //有条件查询
insert into player values(参数);  //插入
update player set number=9 where id = "james";  //更新
delete from player where name = "james" //删除
区别:
drop table 删除库删除表,完全删除
truncate table 删除表中的数据,不删除表
delete只删除指定数据
​
use TableName 进入某数据库
show tables 显示数据库表
show databases;显示数据库
select * from TableName order by id; 排序,默认升序
select * from TableName order by id desc; 排序,默认升序
select * from TableName order by 1; 后跟数字时表示第几个字段
​
select * from TableName where id = 1 union select * from TableName where id = 2;
//联合查询,将查询结果集结合输出
select * from TableName where id = 9999 union select * from TableName where id = 2;
//当第一个结果集为空,默认输出第二个结果集
select *  from TableName where id = 1 union select username,password from TableName where id = 10;
//报错,前后字段数应一致才能输出 

常用注释符

#

--空格

/* */

常用函数

system_user():系统用户名

user():用户名

current_user():当前用户名

session_user():链接数据库的用户名

database():数据库名

version():mysql数据库版本

load_file():mysql读取本地文件的函数

@@datadir:数据库路径

@@basedir:安装路径

@@version_compile_os 操作系统

mysql5.0以上系统自带库

information_schema:数据字典库,存储了其他数据库的元数据;元数据是关于数据的数据,也就是库名、表名、列名的数据类型、访问权限等。

mysql:核心数据库,存储用户的权限信息与帮助信息;

performance_schema:性能字典,此数据库为数据库性能优化提供重要的参考信息。

test:测试库。

information_schema库介绍

SQL注入最常利用的系统数据库,配合union联合查询来获取数据库相关信息(数据库名,所有表名,列名等),

其中主要关注三张表:SCHEMATA表(数据库信息),TABLES表(表信息)以及COLUMNS表(列信息)

SCHEMA表中,重点关注schema_name字段为所有数据库名

TABLES表中,重点关注table_schema字段和table_name字段

COLUMNS表中,重点关注table_schema,table_name,column_name字段名

  • 18
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值