网站function受到干扰或黑客攻击
我的网站上有一个用户消息系统。 我有一个
data-id
对应于users
表中的user_ id
列。 现在我使用ajax jquery和php向用户发送消息。 通过jquery,我获得了点击.msg
按钮的data-id
,并使用php将msg发送给该用户。
现在我的问题是我限制某些人向其他人发送消息。 但是那些可以通过在开发者模式中更改data-id
来轻松地非法发送这些消息。我可以阻止这种情况吗?
您始终可以使用发送到前端的一些服务器端生成的哈希值来确保发送回服务器的用户ID是最初打开该页面的用户ID。 甚至不需要为此调用数据库。
在哪里使用salt / secret和data-id计算哈希值。 提交后,您只需检查提供的哈希是否与新计算的相同。
所以在PHP中你可以做类似的事情:
$userId = 1; $secret = 'yourVeryPersonalSecretSentence'; $hash = sha1($secret . $userId); // would create something like "d0be2dc421be4fcd0172e5afceea3970e2f3d940"
你的HTML中你会有:
在ajax电话中,你只需仔细检查:
$userId = $idValueFromForm; $secret = 'yourVeryPersonalSecretSentence'; $hash = $hashFromForm; $newHash = sha1($secret . $userId); if ($newHash === $hash) { // the userid was the same as sent to the browser ... }
希望这可以帮助。
您无法阻止人们编辑您网站的HTML,通常可以编辑前端的任何内容。
关于限制,我不是100%你的意思,但是,如果用户a不能向用户b发送消息,那么你必须做那个服务器端。 返回false并向用户前端显示相应的消息。
你总是要假设某些东西可能出错,人们想要破解你的网站,那就是想要注入SQL。
您必须仔细检查所有内容,进行额外的validation以确保您的应用程序是安全的。 目前,任何人都可以向所有用户发送消息,创建简单的脚本,这是一个巨大的安全问题。