【发布时间】:2011-08-13 23:36:33
【问题描述】:
我遇到了以下问题。前端网站 (www.domain.com) 用于填写属于后端 (backend.domain.com) 的表单。此表单受验证码保护,验证码的参考值保存在用户会话中(在 PHP 中)。
提交应该是基于 Ajax 的,这会给跨域带来一些问题。因此在 www.domain.com 上写了一个小的 PHP 代理。这个代理请求后端的形式。当用户提交表单时,会向代理发出 Ajax 请求,代理向后端发送验证请求并返回结果。
除了在用户会话中保存引用的验证码之外,所有这些都运行良好。由于前端网站向后端提交表单,后端会为前端使用一个会话。
解决此问题的最佳方法是什么?我想出了2种方法。第一个是在表单(散列)中包含验证码的引用,这样就不需要会话。另一种方法是使用 iframe 直接从后端包含表单。第二种方法可能会很好用,但感觉真的很难看。对于这种情况,您有什么建议?
更新:描述情况的序列图:
Client www.domain.com backend.domain.com
| | |
|-------visit site---------->| |
| |-----get form----->|
| |<----return form---|
|<------return form----------| |
| | |
|-------submit form--------->| |
| |-----submit form-->|
| |<----send reply----|
|<------captcha failed-------| |
v v v
【问题讨论】:
标签: php ajax session cross-domain captcha