Php 防止编辑/隐藏URL中的参数

Php 防止编辑/隐藏URL中的参数,php,url,Php,Url,我有使用mysql\u fetch\u array()获取的行列表。现在我已经创建了这些值的超链接,但问题是我不想通过超链接发送id。也就是说,如果单击item onl list,它将导航到view.php,但值是通过隐藏变量发送的 有什么办法吗?如果不是,我如何通过地址栏发送值,使值不被查看器编辑?也就是说,用户不能编辑id…没有办法这样做 我的意思是,必须发送ID或某些唯一值来告诉服务器您在请求什么。这是简单的逻辑 然而,为了使“改变价值”更难一些,您可以使用AJAX。使用ID的请求仍然被发

我有使用
mysql\u fetch\u array()
获取的行列表。现在我已经创建了这些值的超链接,但问题是我不想通过超链接发送id。也就是说,如果单击item onl list,它将导航到
view.php
,但值是通过隐藏变量发送的


有什么办法吗?如果不是,我如何通过地址栏发送值,使值不被查看器编辑?也就是说,用户不能编辑id…

没有办法这样做

我的意思是,必须发送ID或某些唯一值来告诉服务器您在请求什么。这是简单的逻辑

然而,为了使“改变价值”更难一些,您可以使用AJAX。使用ID的请求仍然被发送,但在后台和普通用户不会注意到任何事情。 注意,有一点技术知识的人将能够调查请求,而这仅仅是通过使用Firebug或其他一些开发工具来完成的,所以你仍然不行


如果你认为你能从中受益,相信我,你不会的。这不是处理安全问题的方法,如果这是你的意图的话

没有办法做到这一点

我的意思是,必须发送ID或某些唯一值来告诉服务器您在请求什么。这是简单的逻辑

然而,为了使“改变价值”更难一些,您可以使用AJAX。使用ID的请求仍然被发送,但在后台和普通用户不会注意到任何事情。 注意,有一点技术知识的人将能够调查请求,而这仅仅是通过使用Firebug或其他一些开发工具来完成的,所以你仍然不行


如果你认为你能从中受益,相信我,你不会的。这不是处理安全问题的方法,如果这是你的意图的话

基本上,您希望a.)混淆ID或b.)限制用户可以查看的ID

为了实现前者,您可以为数据库中的每个条目生成一个随机散列,该散列比id长得多,而且很难猜测(
hash('sha512',time()+$row['id'])
)。您可以使用这些唯一的散列而不是链接中的ID

另一种方法在很大程度上取决于您的应用程序:您可以跟踪您在会话中提供给用户的id,并在id不在其列表中时拒绝页面请求(发送响应)。不过,攻击者可能会先调用其他页面(如果您的应用程序中可能),以在其会话中填充此链接列表

无论哪种方式,你都不能保证成功,但你可以使攻击更加困难


确保实现目标的唯一方法是强制用户登录并决定谁可以查看每个用户的对象(同样,如果在应用程序中可能的话)。

基本上,您希望a.)混淆ID或b.)限制用户可以查看的ID

为了实现前者,您可以为数据库中的每个条目生成一个随机散列,该散列比id长得多,而且很难猜测(
hash('sha512',time()+$row['id'])
)。您可以使用这些唯一的散列而不是链接中的ID

另一种方法在很大程度上取决于您的应用程序:您可以跟踪您在会话中提供给用户的id,并在id不在其列表中时拒绝页面请求(发送响应)。不过,攻击者可能会先调用其他页面(如果您的应用程序中可能),以在其会话中填充此链接列表

无论哪种方式,你都不能保证成功,但你可以使攻击更加困难


确保实现目标的唯一方法是强制用户登录并决定谁可以查看每个用户的对象(同样,如果在应用程序中可以这样做的话)。

为了让这更难,您可以在view.php上获得ID后对其进行加密和解密,这样很难预测和处理。例如,像youtube视频URL之类的东西要想让这更难一些,你可以在view.php上获得ID后对其进行加密和解密,这样就很难预测和处理。例如,youtube视频URL之类的内容,请务必确保您的问题有一个有意义的标题。这是所有人都必须继续下去,除非他们努力阅读你的整个问题。我已将其编辑成更适合当前的内容。请务必确保您的问题有一个有意义的标题。这是所有人都必须继续下去,除非他们努力阅读你的整个问题。我已经把它编辑成更适合现在的版本了。谢谢你对我的疑问的解答。我是php的初学者。你能举一个简短的例子,说明如何在
view.php
页面中实现
hash函数
并检索相应的
id
hash
是一个内置的php函数,你只需检查
SHA512
算法在你的机器中是否可用。当然,你可以选择另一个你喜欢的。在p_action页面
Now p_view.php上,我如何获得解密值…哈希算法是不可逆的,你需要将它们存储在数据库中,作为一个额外的唯一索引。谢谢Soulmerge:谢谢你解决了我的疑问。我是php的初学者。你能举一个简短的例子,说明如何在
view.php
页面中实现
hash函数
并检索相应的
id
hash
是一个内置的php函数,你只需检查
SHA512
算法在你的机器中是否可用。当然,你可以根据自己的喜好选择另一个。在p_操作页面
Now p_view.php上,我如何获得解密值…哈希算法是不可逆的,你需要将它们存储在数据库中,作为一个额外的唯一索引。嗯,你说得对,我已经做了MITA