PHP替换GET方法链接

PHP替换GET方法链接,php,Php,很抱歉,这个问题可能太宽泛了 我的站点上有一个表,显示数据库中的所有用户。对于数据库中的每一行,我在表中创建一个链接,允许删除相应的用户。我使用http\u build\u query来实现这一点。$qs数组包含我要发送到下一个脚本的变量 echo '<th><div class="right"><a onclick="return confirm(\'Are you sure you want to completely remove '.$name.' from

很抱歉,这个问题可能太宽泛了

我的站点上有一个表,显示数据库中的所有用户。对于数据库中的每一行,我在表中创建一个链接,允许删除相应的用户。我使用
http\u build\u query
来实现这一点。
$qs
数组包含我要发送到下一个脚本的变量

echo '<th><div class="right"><a onclick="return confirm(\'Are you sure you want to completely remove '.$name.' from your officer list?\')" href="./php/remove-officer.php?'.http_build_query($qs, null, '&amp;', PHP_QUERY_RFC3986).'">Remove</a></div></th>';
我最近在这里看到,不应该使用
GET
方法来更改
db
。我的理解是,这是出于安全原因。 url从未真正显示出来,但如果我转到我的服务器日志,你显然仍然可以看到它

::1--[09/Aug/2019:13:16:42-0500]“获取 /php/remove user.php?user=bob%40builder.net&name=Robert%20Builder&branch=5&officer=n%2Fa&type=Limited&alert=0 HTTP/1.1“302-

在删除脚本结束时,用户会立即重定向回显示users表的页面

因此,我的问题如下:

1.)这是否会对我的数据库/站点造成风险

2.)我可以使用哪些替代方案来提高安全性?如果可能,我仍然希望能够使用
Remove
链接

我将在编辑中包含任何要求的附加信息

这是否会对我的数据库/站点造成风险

这里似乎没有任何安全风险……但是GET请求应该是安全的,而且人们都知道会运行预缓存扩展(在访问URL之前将URL中的数据存储在缓存中……在访问过程中删除所有内容)

我可以使用哪些替代方案来提高安全性

使用表单和post请求就可以完成这项工作

<form method="post" action="./php/remove-officer.php" onsubmit="your-js-here">
    <input type="hidden" name="user" value="bob">
    <!-- etc -->
    <button> Remove</button>
</form>

去除

我的建议是,只在后端添加用户ID的链接。相反,您可以在后端编写准备好的语句,以避免SQL注入。另一件事,如果你在你的网站上有一些“级别”的概念,比如普通和管理员,也许你可以避免从你的应用程序中删除管理员。谢谢你的回复,我相信这可以是我的解决方案。不过我有个问题。假设我需要两条关于用户的数据来删除它们。类似于
$user
$name
。有没有办法确保
可以同时包含
$user
$name
?我的数据库中有一些条目,其中两行可能具有相同的
$user
,两行可能具有相同的
$name
,但没有一行同时具有相同的名称。@FamousAv8er-请参见
。放入尽可能多的隐藏输入。
<form method="post" action="./php/remove-officer.php" onsubmit="your-js-here">
    <input type="hidden" name="user" value="bob">
    <!-- etc -->
    <button> Remove</button>
</form>