2010-10-21 80 views
1

也许这是一个愚蠢的问题,但我想用django之外的窗体登录到我的django应用程序。我的猜测是我可以发送POST请求到/ login,但是由于csrf令牌会失败。Django:从页面外登录django

也许我错过了某种理论背景,但我想知道什么是实现这一目标的正确方法。

背景信息: Django的认证工作正常IF你使用Django的登录表单。我想要做的是使用一个外部静态html表单(在apache外的django上),直接发布到django,所以当我重定向到我的django服务器时,我不必登录。

+0

你如何鉴别?细节,男人,细节! – 2010-10-21 13:07:57

+0

@Andrew雪橇:我添加了一些背景信息,请让我知道,如果你需要任何进一步的信息。 – Doppelganger 2010-10-21 13:33:37

回答

1

CSRF存在以防止这一点。尽管您无疑有良好的意图,但这与试图通过真正的CSRF攻击窃取您网站的黑客没有技术上的区别。

+0

我不明白这可能是危险的,我想将用户从我的非Django站点重定向到我的Django站点。我的意思是,我不会使用来自其他站点的任何功能,我只是想进行完全重定向,并使用来自“原始”站点的凭据,所以我不会要求django方面的任何信息。 – Doppelganger 2010-10-21 13:18:48

+0

他说你不能在没有CSRF检查的情况下“发布”到你的表格,因为如果你的话,任何人都可以(包括那些有恶意的意图),而你不想这样做。 – 2010-10-21 13:33:47

+0

但是我实际上发布了登录信息,因此,任何有登录信息的人都可能以某种方式冒充用户。 – Doppelganger 2010-10-21 13:47:30

0

听起来像是你需要一个像CAS单点登录服务:http://code.google.com/p/django-cas/

(但有可能矫枉过正)

+0

它看起来很有趣,但是,是的,它是矫枉过正。我不想集中任何东西(这可能是一个更有效的解决方案),我只是有一个HTML表单托管在另一台服务器上,并且我有用于登录和密码的字符串。所以,我想利用这些信息并让用户在重定向后登录到django服务器。 – Doppelganger 2010-10-21 14:06:58