我有一个需要管理员访问权限才能执行某些功能的网站 - 其中一个功能是删除表格中的行。 所以我通过使用会话登录作为标准来保护页面,我可以在网站的根文件夹中看到.htaccess文件。
为了执行删除,管理员用户将单击删除按钮,而在页面上看不到删除查询时,可以在隐藏值中看到表名,因为根据单击的删除按钮,将使用标准mysqli_query清除不同的表。
<form method='POST' action='deleteData.php' target="_blank">
<input type='hidden' value="table_name_one" name='tbl'>
<input type='submit' value='Delete'>
</form>
<form method='POST' action='deleteData.php' target="_blank">
<input type='hidden' value="table_name_two" name='tbl'>
<input type='submit' value='Delete'>
</form>
deleteData.php仅在用户输入更多确认密钥后删除
<?php
if (($_SERVER['REQUEST_METHOD'] === 'POST') && (isset($_POST['delete']))){
if ($_POST['delete_conf'] === 'DELETE') {
//connect
//mysqli_query DELETE FROM table_name
...
?>
<body>
<p>Confirm key:
<input type="text" name="delete_conf" id="delete" value="" />
<input type='hidden' value="<?php if (!empty($tbl_name)) { echo $tbl_name; } ?>" name='tbl'>
</p>
<input type='submit' name="delete" value='DELETE!'>
所以我想知道,使用login / htaccess安全性,我是否需要进一步保护页面?如何妥协呢?
我可以看到使用开发工具,考虑到表名是在表单提交按钮内,并且可以在用户查找其他表名时进行更改。