数据修改的post改写

manbudezhu
  • 231

最近学习csrf攻击看到,get方式修改数据是非常不安全的.所以想把所有的数据修改方式改成post方式.
以往的thinkphp中列表页,先获取后台数据,然后foreach 循环到前台页面中
样式:图片描述
代码:

 <?php foreach ($data as $k => $v): ?>            
            <tr class="tron">
                <td><?php echo $v['uname']; ?></td>
                <td><?php echo $v['password']; ?></td>
                <td><?php echo $v['role_name'] ?></td>
                <td align="center">
                    <a href="<?php echo U('edit?id='.$v['id']); ?>" title="编辑">编辑</a> |
                    <?php if ($v['id']>1): ?>
                        <a href="<?php echo U('delete?id='.$v['id']); ?>" onclick="return confirm('确定要删除吗?');" title="移除">移除</a>
                    <?php endif ?>
 
                </td>
            </tr>
        <?php endforeach; ?> 
        

现在怎么才能把它改写成post 方式了?
每条列表做个form? 然后如何在表单加入csrf的随机数了,每一条做一个随机数?

回复
阅读 3.4k
4 个回答

列表页需要提交什么东西吗?不就是数据的展示么

form表单可以包在外面,一次性提交多个;也可以用ajax来post。

csrf的随机数不需要一条一个;当前这个post提交带上一条来进行验证就好

怎么把上面列表的编辑、删除改成post方式,这样做的意义大吗?

一個form只需一個hidden input 存放scrf隨機數,每次載入form 或提交失敗後都會讀取新的scrf隨機數放入這個input,而這個scrf隨機數應交由你的框架生成(當然你自己創造一個生成器也行)。方便的做法是每次載入form或提交失敗時用ajax取得這個scrf然後放入input,確保每次提交時都是正確的scrf隨機數。

*這個scrf應該有時效性,比如設置成7000,就代表從提交form一刻數7秒,如超過7秒仍未提交成功則scrf隨機數會過期,form提交失敗。

同意一楼的说法.
宣传栏