我们在主页上有一个链接,出于安全考虑,需要阻止用户在Y分钟内点击链接X次。它是服务器端链接按钮,如果超过阈值,我可以返回信息性消息。
但是,我不确定如何识别用户。我应该使用客户端的IP地址吗?我可以为未登录的用户使用会话吗?
答案 0 :(得分:0)
您可以使用会话存储总点击次数。
但是,如果用户是恶意/聪明的 - 他可以通过拒绝接受cookie或在没有sessionid的情况下加载页面(在无cookie会话处理的情况下)轻松“丢失”会话。
使用IP地址可能会有效,但要意识到使用同一网络的人可能拥有相同的IP地址,因此您可能会偶然遇到一些人。再次,如果你试图阻止DDOS - 它将没有任何区别,因为他们有一个IP列表可供使用。
答案 1 :(得分:0)
我建议不要使用IP地址来识别用户。请参阅:Is it reliable to use the IP address to identify a user on your website?
使用Cookie通常是跟踪用户的最佳方式。但显然如果这是一个安全问题,那么可以规避。
如果您正在处理潜在的拒绝服务攻击,那么我认为唯一安全的选择是要求用户在允许他/她点击链接之前登录。如果这不是一个主要的安全问题(糟糕的演员可以规避),那么只需要为您的网站使用Cookie并跟踪点击次数。
修改强>
根据您的评论,我认为您需要为用户实施安全且有意义的方法来登录。没有通用的方法来成功和可靠地识别单个用户(但是您可以定义它)。您需要让用户登录并接受cookie(这样您才能跟踪他们的会话)。
这就像试图阻止孩子不止一次敲响你的门铃一样。试图通过网络黑暗(IP地址等)来确定他们是谁,就像试图通过让他们通过门向你喊出他们的名字来识别铃声。你必须让他们提供一些更有意义和具体的身份识别形式,如果你想让门铃停止,你可以附上它们并进行跟踪。