我试图通过测试Symfony2的,非常感谢他们所做的CRSF保护系统。
我security.yml模板(我修改了默认的。)
security:
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login:
pattern: ^/demo/secured/login$
security: false
secured_area:
pattern: ^/demo/secured/
form_login:
check_path: _security_check
login_path: _demo_login
csrf_provider: form.csrf_provider
logout:
path: _demo_logout
target: _demo
#anonymous: ~
#http_basic:
# realm: "Secured Demo Area"
access_control:
#- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
在我的表格:
<input type="hidden" name="_csrf_token" value="{{ csrf_token("authenticate") }}">
产生这样的:
<input type="hidden" name="_csrf_token" value="cKzXBHRDX_sHuT4qt9TAJIwgRvtRMtPnFDtitrSZDuw">
我不知道symfony中如何处理与验证令牌,但在提交我的登录之前,我改变了使用人工萤火虫看起来像这样的标记的值:
<input type="hidden" name="_csrf_token" value="MODIFIEDcKzXBHRDX_sHuT4qt9TAJIwgRvtRMtPnFDtitrSZDuw">
当我提出我登录,我得到登录。这意味着令牌没有影响。 在那里我收到错了吗?
猎鹬
- Symfony的版本是2.5.2
- 该系统签署了我,当我手动设置会话变量“记录”为真。 这种情况从数据库读取和比较后的密码。
HTML表单!
<form id="Loginform" onsubmit="OrganicLogin();return false;"> <input type="hidden" name="_csrf_token" value="{{ csrf_token("authenticate") }}"> <div id="Loginresponse" style="display:none;"></div> <div class="form-group" style="overflow:hidden;"> <label style="margin-top:10px;" for="inputUsername" class="col-lg-2 control-label">Username</label> <div class="col-lg-10"> <input type="text" class="form-control" id="inputUsername" placeholder="Username" style="width:215px;float:right;"> </div> </div> <div class="form-group" style="overflow:hidden;" > <label style="margin-top:10px;" for="inputPassword" class="col-lg-2 control-label">Password</label> <div class="col-lg-10"> <input type="password" class="form-control" id="inputPassword" placeholder="Password" style="width:215px;float:right;"> </div> </div> <div class="form-group" style="overflow:hidden;text-align:center;" > <button type="submit" class="btn btn-primary btn-block" id="submitButton">Access</button> </div></form>
是的! 我做了
其实什么我争论的全部时间,我做了登录过程本机方式,形式,读取数据的JS,发送POST请求到控制器,控制器检查输入和设置会话。
没有,全部由手工完成
其实这是我第一次使用security.yml,我只是去掉了一些部分我判断为不有用此线程
不..