(web安全实践)phpstorm+phpstorm社交论坛网站搭建+安全性测试(六)

5 篇文章 1 订阅

(6)用户删除留言和评论、root用户管理管理员列表实现

对于一个数据库应用系统来说,增删改查功能是最基本且必需的,而在数据的删除方面也比较容易出现越权删除的问题,这就要求我们要在权限的划分与查询上做到性质,不能出现非本用户留言删除,无关评论删除,非root用户删除管理员等问题。
1.用户删除本用户留言

messagelist表的结构

/*查找数据库中属于登录用户的留言viewownmessage.php*/
$q = "select *from messagelist where username =  \"".$_SESSION['username']."\"  order by id";//设置查询指令
        $result = mysql_query($q);//执行查询
        if($result)
        {
            while($row = mysql_fetch_assoc($result)){
                echo "<tr><td> <a href=\"ViewOwnMessage_detail.php?id=".$row['id']."\">".$row['title']."</a></td><td>".$row["lastdate"]."</td></tr>";
            }
        }
        else{
            echo "没有文章";
        }
/*viewownmessage_deail.php*/
 $_SESSION['id']=$_GET['id'];
        $q = "select MSG from messagelist where id =  \"".$_SESSION['id']."\" ";//设置查询指令
        $result = mysql_query($q);//执行查询
        if($row = mysql_fetch_assoc($result)){
            echo "<tr><td>".$row["MSG"]."</td><td> <a href=\"delete.php?id=".@$row['id']."\">删除</a></td></tr>";
        }

删除实现

/*delete.php*/
$id=$_GET['id'];
    $sql="delete from messagelist where id = $id";
    $que=mysql_query($sql);
if($que&& $_SESSION['class']==1){
    echo"<script>alert('删除成功,返回首页');location.href='adminpage.php';</script>";
}
else if ($que&& $_SESSION['class']==0){
    echo"<script>alert('删除成功,返回首页');location.href='firstpage.php';</script>";
}
else{
    echo "<script>alert('删除失败')</script>";
    exit;
}

2.用户删除自己留言下的评论和自己发表的评论

可删除的评论分为两种,一种是自己发表的评论,另一种是别人在自己的留言下发表的评论。这样就要求评论表的结构不仅要有发表者的信息,还要有被评论者的信息,这样就可以查找到自己收到的评论的集合和自己发表的评论的集合。

/*查找收到的评论viewGotcomments.php*/ 
$q = "select * from comments where comment_for =\"".$_SESSION['username']."\" ";//设置查询指令
        $result = mysql_query($q);//执行查询
        while($row = mysql_fetch_assoc($result)) {
            echo "<tr><td>".$row["comment_name"]."</td><td>".$row["comment_msg"]."</td><td>".$row["lastdate"]."</td><td> <a href=\"deletecomments.php?id=".@$row["id"]."\">删除</a></td></tr>";
        }
/*查看自己发表的评论viewOwnMessage.php*/ 
$q = "select * from comments where comment_name =\"".$_SESSION['username']."\" ";//设置查询指令
        $result = mysql_query($q);//执行查询
        while($row = mysql_fetch_assoc($result)) {
            echo "<tr><td>".$row["comment_for"]."</td><td>".$row["comment_msg"]."</td><td>".$row["lastdate"]."</td><td> <a href=\"deletecomments.php?id=".@$row["id"]."\">删除</a></td></tr>";
        }

删除操作:

/*deletecomments.php*/
$id=$_GET['id'];
$sql="delete from comments where id = $id";
$que=mysql_query($sql);
if($que&& $_SESSION['class']==1){
    echo"<script>alert('删除成功,返回首页');location.href='adminpage.php';</script>";
}
else if ($que&& $_SESSION['class']==0){
    echo"<script>alert('删除成功,返回首页');location.href='firstpage.php';</script>";
}else{
    echo "<script>alert('删除失败')</script>";
    exit;
}

3.root用户管理管理员列表(添加和删除)

该功能主要是为了实现管理员变动所对应的管理员列表的更改

管理员添加

/*前端,管理员的添加*/
<form action="checkaddadmin.php" method="post" >
    管理员名称 :<input type="text" name="username"/><font size="2" face="arial" color="red">*只允许数字、字母和下划线</font>
    <br/>
    密&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;码&nbsp;&nbsp;&nbsp;:<input type="password" name="password"/><font size="2" face="arial" color="red">*长度不少于8位且只允许数字、字母和下划线</font>
    <br/>
    确认密码&nbsp;&nbsp;&nbsp;&nbsp;:<input type="password" name="confirm"/>
    <br/>
    <input type="Submit" name="Submit" value="添加"/>
    <br/>
    <a href = "adminfirst.php">返回上一页</a>
</form>
/*后端,checkaddadmin.php*/
$sql_insert = "insert into memberlist(username,password,class) values('$user','$psw',1)";
                $res_insert = mysql_query($sql_insert);
                //$num_insert = mysql_num_rows($res_insert);
                if($res_insert)
                {
                    echo"<script>alert('添加成功');location.href='adminfirst.php';</script>";
                    exit(0);

                }
                else
                {
                    echo "<script>alert('系统繁忙,请稍候!'); history.go(-1);</script>";
                }

删除管理员:

/*查找管理员,deleteadmin.php*/
 $q = "select * from memberlist where class = 1";//设置查询指令
        $result = mysql_query($q);//执行查询
        while($row = mysql_fetch_assoc($result)){
            echo "<tr><td>".$row["username"]."</td><td>".$row["lastdate"]."</td> <td> <a href=\"deleteadmin.php?id=".$row['id']."\">删除</a></td></tr>";
        }
/*删除的实现,deleteadmin.php*/
$id=$_GET['id'];
$sql="delete from memberlist where id = $id";
$que=mysql_query($sql);
if($que){
    echo"<script>alert('删除成功,返回列表');location.href='admindelete.php';</script>";
}else{
    echo "<script>alert('删除失败')</script>";
    exit;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值