目标:Website1通过http请求发送Website2用户数据。了解跨域用户身份验证
问题:Website2确保数据来自Website1,而不是一些黑客。
注:我不会使用HTTPS来,我认识到,要解决的一个大问题,但现在GAE不支持SSL为自己的域名:http://code.google.com/appengine/kb/general.html#httpsapps
所以我做了一些伟大的通过在两个站点之间加密和发送数据来实现,另一个是能够解密和读取数据的站点。我在Google App Engine/Python/Django-nonreal上,这个页面是让pycrypto工作的一个很好的资源:http://code.activestate.com/recipes/576980/ Kn
因此,我很熟悉知道用户数据已加密,而且您需要拥有是阅读它的关键,但Website2如何知道请求来自Website1?什么阻止黑客再次发送完全相同的请求,而Website2认为这个黑客有效在Website2上做什么?
例如,有人不能只听HTTP请求并记录加密的数据是通过线路发送的?然后黑客可以做他们自己的请求,具有与之前使用的Website1相同的值,并且黑客可以对Website1执行与Website1相同的操作?本质上,黑客会告诉Website2他们是Website1的有效登录用户。
总体目标:Website2被告知用户数据,该数据仅来自Website1的请求。除非您的网站1使用相同的加密数据Website1发送到网站2,否则任何其他来自黑客的请求都将失效。
不知道我是否解释得不够好,或者是否有一个我基本没有的基本理解,但感谢您的帮助。
OpenID并没有解决重播攻击_at all_ ... – bdonlan 2011-02-11 17:27:14