0

寻求有关该问题的任何帮助。这是交易:我有一个数据库,它有一个teams表,它包含team_id. 在我的一个页面上,我生成了一个链接列表,其中包含team_id创建者的获取 URL。我需要team_id下一页上的,但不知道如何通过任何其他方式传递它。使用表单和 POST 不是一个选项,因为此方法只会传递列表中的最后一个链接数据。存储在会话中也不是一种选择,因为无法将我需要的变量离散地传递给一个函数来设置会话变量。我已经尝试过了,通过查看源代码可以很容易地查看它。所以这里有一些示例代码,可以准确了解我正在处理的内容。

<?
if(mysql_num_rows($result2)>0){ ?>
     <a class="fltrt btn btn-danger btn-small" onclick="test()" href="acceptmatch-exec.php?match_id=<?php echo $match_id; ?>&team_id=<?php echo $team_id;?>&action=cancel">Cancel Match</a>
 <?}else{?>
     <a class="fltrt btn btn-success btn-small" href="acceptmatch-exec.php?match_id=<?php echo $match_id; ?>&team_id=<?php echo $team_id;?>&action=accept">Accept Match</a>
  <?} ?>

上面的代码是通过排除的 while 循环在页面上多次生成的。我想传递match_idandteam_id变量而不被任何地方看到。如果我把它做成一个表格,它不会传递正确的变量,除非当时只有一个结果(不太可能)。我确信必须有一个简单的方法让我难以理解,所以请分享如何解决这个问题的想法。我觉得好像我解释得不够好,但解释起来并不容易。我基本上想要一些像 GET 一样工作但行为像 POST 并且可以对查看源代码或链接位置的人隐藏的东西。

谢谢

4

1 回答 1

1

只要您不将其发布到其他地方,人们就无法从您的服务器上看到您的源代码。

如果你想隐藏 ID,只需 [hash](hashing method](http://en.wikipedia.org/wiki/Hash_function) 他们:

<a href="someScript.php?id=<?php echo md5($id) ?>">Da Link</a>

然后someScript.php您必须查看您的数据库 [请通过PDO!] 以获取:

SELECT * FROM teams WHERE MD5(id) = :id

但是现在 md5 散列很容易逆转,因此您不会受到攻击者的攻击。

无论如何,只要您的站点构建正确,您就可以根据需要隐藏资源,而无需依赖会话、哈希或其他任何东西:只需充分利用授权即可。


我坦率地建议你阅读一些关于如何服务器端开发的好东西,以便编写好的代码而不是每次都重新发明轮子——坚持我上面链接的 Symfony 指南,尽管你不会结束使用整个框架 [我强烈的想法无论如何推荐]你会发现它们非常有用。

于 2012-09-13T03:35:35.780 回答