【发布时间】:2020-10-26 21:05:30
【问题描述】:
背景:
我使用 PRN 堆栈(Postgres、Express、ReactJS 和 NodeJS)编写了一个简单的轮询应用程序。客户端向服务器发送 GET 请求,这将返回问题数据并将其显示给用户。然后用户选择选项 A 或 B。然后通过 POST 请求将其发送到服务器,然后触发数据库更新。
我的问题是任何人都可以查看客户端的 RAW HTML 并查看服务器 URL 并自己发送相同格式的 POST/GET 请求。即使我使用了身份验证令牌,肯定有人可以再次查看 RAW HTML,查看 GET 请求并自己进行操作?
我可能在这里完全遗漏了一些东西,因此我们将不胜感激。
【问题讨论】:
-
没有办法阻止其他请求发送到您的服务器。您的服务器在互联网上。任何人都可以发送给它。通常的解决方案是,对于每个传入请求(登录请求除外),您都需要某种形式的帐户登录凭据,并且您检测到串行滥用并锁定违规帐户。
-
其实这是个好问题。我很好奇人们用来禁止像
requests这样的包的方法,这使攻击者能够很容易地进行 DOS 攻击。 -
@jfriend00 我认为这可能是答案。我的问题是即使我需要身份验证,当然任何人仍然可以获得自己的令牌,并且仍然可以从那里发送自己的 GET/POST 请求。
-
@Mooncrater - 通常会实施速率限制以避免让一个客户端发送太多请求。这就是像 Google 这样的大公司所做的。
-
@Mooncrater - 不,我所说的完全不是基于 IP 的限制。如果您阅读我的 cmets,我说过您需要一个帐户作为凭证,并且您对该帐户的所有访问进行速率限制。 DDOS 是一个很大的话题,因为有许多类型的攻击,所以没有一般的答案——你必须讨论一种特定类型的攻击。某些保护必须在网络层使用路由器和防火墙以及其他网络基础设施进行处理,而其他保护必须在应用程序级别进行。 DDOS 不是这个问题的主题。如果您想更具体地问这个问题,请写下您自己的问题。
标签: api express http security server