javascript函数或方法可以通过浏览器地址栏运行。我想防止这种情况发生
你不能。
我想通过我应该使用什么样的概念来防止这种情况发生,当它在地址栏中运行并且不起作用时,用户可能不知道我的函数参数必须进入什么!?
您可以混淆代码,但这不会阻止它被逆向工程或简单地重写。重要的是 HTTP 请求,而不是产生它们的 JS。
我想使用一个类似于 twitter-follow-button 的概念。但是,如果人们知道特定的事情(id、日期等),他们可以通过获得更多的追随者和东西来破解它。
您需要在服务器上验证是否允许发出请求的用户发出请求。在该特定情况下,您可以使用当前登录用户的会话数据来确定哪个用户成为关注者。
您还应该实施CSRF 保护,以便其他站点无法将用户转发到您的站点。
您不能轻易阻止 Malory 向 Alice 提供一些 JavaScript 以将其放入将发出请求的地址栏中。那是一种社会工程攻击。不过,浏览器现在正在实施针对它的保护(例如,从地址栏中阻止 javascript: uris 并让人们改用开发人员工具)。
您可以实施速率限制,以便脚本无法让用户在短时间内关注 10 个人。
您可以让请求是一个需要对不同子域的整页请求,并让该子域将确认请求拉回原始服务器。由于用户必须与来自两个主机名的数据进行交互,因此单个粘贴的脚本将无法完成整个过程(因为存在同源策略)。不过,这可能是矫枉过正。