我正在做网络编程,在实现登录到外部域时遇到一些麻烦。
我要构建的是一个Web应用程序,它可以帮助用户从我的网站(mysite.com)登录到多个域。 这就是我的Web应用程序的工作方式。
要实现此目的,我调查并检查了许多选项,但仍然遇到错误。
<form method="POST" action="https://thenounproject.com/accounts/login/" target="_blank">
<input type="text" name="login" required>
<input type="password" name="password" required>
<button type="submit">Login</button>
</form>
URL(https://thenounproject.com/accounts/login/)是域(https://thenounproject.com/)的登录页面,输入名称(登录名/密码)与将POSTS URL到其URL的参数名称相同自己的域服务器。
但是我收到HTTP 403错误,所以没有解决。
<button type="button" onclick="window.open('https://username:password@thenounproject.com/accounts/login/')">
但是上面的代码也不起作用,它只是打开url(https://thenounproject.com/accounts/login/)而登录不起作用。
有没有办法实现这一目标?
答案 0 :(得分:0)
快速浏览一下名词项目,他们在登录时使用了CSRF令牌。它们的目的是防止您完全按照自己的描述进行操作。如果您不知道这些是什么以及为什么重要,那么在继续之前,请仔细阅读它们以了解您的项目,这一点很重要
https://owasp.org/www-community/attacks/csrf
要按照说明进行这项工作,您需要一些可以操纵浏览器cookie存储的东西(例如开发自定义浏览器扩展)。首先,您需要建立一个会话以获取令牌(登录页面的GET应该呈现该令牌)。要按照说明进行工作,您需要将其添加到名词项目所在域的浏览器的cookie中,由于它带来的安全风险,浏览器会积极阻止它。