首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Symfony将任意数据设置为匿名访问者会话。

Symfony将任意数据设置为匿名访问者会话。
EN

Stack Overflow用户
提问于 2016-07-05 06:36:46
回答 1查看 172关注 0票数 1

使用Symfony 3.0.7

简单地说:

我无法将任意数据设置并检索为匿名用户的会话。

换句话说..。

我通常从会话对象中检索数据,在任何带有以下几行行的控制器中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public function dummyAction(Request $request)
{
    # …
    $session = $request->getSession();
    $my_datas = $session->get('my_key');
    # …

直到今天,在防火墙后面配置标准方式的urls上还需要(和工作),这意味着登录和login_check密钥以及用户提供者等等。

现在,我需要一个新的防火墙来保护一个新的区域:"/api/.+".

这个区域必须是无状态的,但是一个特殊的uniq "/api/signup"必须允许会话。

所以我创建了下面的防火墙

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
firewalls:
    apisignup:
        pattern: api/signup
        anonymous: ~
    api:
        pattern: /api/
        provider: usr
        stateless: true
        lexik_jwt: ~

我所需要的只是在访问者点击时将单个标量值( captcha解决方案)持久化到会话中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
GET http://192.168.0.5/app_dev.php/en/api/signup

然后,在发送到同一个url时,我需要检索值。

Notes

目前,无论我是通过GET还是POST点击这个url,服务器响应总是包含一个"set- cookie“头,就好像浏览器只是简单地删除了这个命令,而不是在下一个请求时传递cookie。

我使用以下代码片段进行了测试:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
### SERVER SIDE
/**
 * @Route( "/signup", name="api_signup")
 * @Method( {"GET","POST"} )
 */
public function signupAction( Request $request )
{
    $session = $this->get('session');
    if ( $request->isMethod('POST') ) {
        $datas = $request->request->all();
        return new JsonResponse([
            'received' => $datas['captcha']
            ,'captcha' => var_export($session->get('captcha'), true)
        ]);
    }
    $session->set('captcha','foobar');
    return new JsonResponse(['challenge' => 'foobar']);
}

### CLIENT SIDE
$.ajax({
    url:'http://192.168.0.100/app_dev.php/en/api/signup'
    ,method: 'get'
    ,success : function(datas){
        // datas.challenge && $('#captcha').html(datas.challenge) &&
        $.ajax({
            url:'http://192.168.0.100/app_dev.php/en/api/signup'
            ,method: 'post'
            ,data: {
                captcha: 'foobar' // prompt("Captcha ?")
                // ...
            }
        });
    }
});

POST JsonResponse "captcha“值始终包含

你知不知道(“我错过了”)会导致这种行为?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-05 09:12:00

我打赌你是在发出来自另一个域名的请求。

在这种情况下,提醒CORS需要:

  1. 服务器端,必须将Access-control-allow_credentials 设置为true。
  2. 客户端,必须将withCredentials xhr属性设置为true。

然后,您的XHTTP请求将使用该请求为该域推送任何可用的设置cookie。确保制定适当的限制政策以降低CSRF的风险

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38206219

复制
相关文章
将任意网站打包为桌面程序
1.这里需要使用到nodejs的环境,所以需要安装nodejs,安装非常简单,去nodejs的官网https://nodejs.org/en/ 下载,一直下一步就行 检验安装是否成功,cmd命令输入如下命令,出现nodejs的版本号,说明安装成功
力力
2019/09/09
1.6K0
将任意网站打包为桌面程序
1.这里需要使用到nodejs的环境,所以需要安装nodejs,安装非常简单,去nodejs的官网https://nodejs.org/en/ 下载,一直下一步就行 检验安装是否成功,cmd命令输入如下命令,出现nodejs的版本号,说明安装成功
低调小熊猫
2020/06/07
7610
PHP为任意页面设置访问密码
呐,本篇内容就如标题所说的,用于给任意的页面设置访问密码。全部代码都在下头了↓↓↓
你的明明呐丶
2022/06/27
1K0
将 Vim 设置为 Rust IDE
Rust 语言旨在以 C++ 开发人员熟悉的方式实现具有安全并发性和高内存性能的系统编程。它也是 Stack Overflow 的 2019 年开发人员调查中最受欢迎的编程语言之一。
用户8639654
2021/09/15
1.8K0
Swift Codable 将任意类型解析为想要的类型
默认情况下,使用 Swift 内置的 Codable API 解析 JSON 时,我们的属性类型需要和Json 中的类型保持一致,否则就会解析失败。
韦弦zhy
2021/11/24
2K0
go: kafka 将group设置为最新
有时,在确保group当前没有consumer的情况下,可以将这个group的偏移设置成最新,以保证下次启动时,group能从最新的消息消费。 代码:
超级大猪
2019/11/21
2.1K0
为 Confluence 6 分发包设置一个邮件会话
最简单设置 Confluence 电子邮件发服务器的方否认就是通过 Confluence 的管理员控制台进行设置。请参考 Configuring a Server for Outgoing Mail 页面中的内容。
HoneyMoose
2019/01/30
4900
如何在Ubuntu 16.04上为匿名下载设置vsftpd
FTP是文件传输协议的缩写,是一种曾经广泛用于在客户端和服务器之间移动文件的网络协议。它已被更快,更安全,更方便的文件传输方式所取代。许多休闲网民希望直接从他们的网页浏览器用https下载,而且命令行用户更加喜欢使用的安全协议,如scp或SFTP
木纸鸢
2018/10/25
1.7K0
怎样将Anaconda设置为国内的镜像
“ Anaconda是世界上最流行的数据分析平台(它们官网自己吹的nb),如果把镜像改为国内的可以节省很多时间。”
讲编程的高老师
2020/08/14
7.4K1
【C++】匿名对象 ② ( 将 “ 匿名对象 “ 初始化给变量 | 将 “ 匿名对象 “ 赋值给变量 )
" 匿名对象 " 的 作用域 仅限于其所在的 表达式 , 这句表达式 执行完毕后 , 匿名对象 自动销毁 ;
韩曙亮
2023/10/15
3940
【C++】匿名对象 ② ( 将 “ 匿名对象 “ 初始化给变量 | 将 “ 匿名对象 “ 赋值给变量 )
为匿名类型添加方法
1:这个做法不太常用 2:这个方法要传递两个参数, 打算用扩展方法解决这个问题, 但是扩展方法又不能用在匿名类型上, 有点郁闷 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication8 { class Program { static void Main(string[] args) {
liulun
2022/05/09
3390
如何将Eclipse设置为中文版[通俗易懂]
我们知道Eclipse一个开放源代码的、基于Java的可扩展开发平台,不管学习还是工作都是一款不错的集成开发环境(IDE),但是对于一些初学者看到Eclipse上满满的英文字母可能会感到无从下手,汉化后可能还好点。
全栈程序员站长
2022/08/20
4.1K0
如何将Eclipse设置为中文版[通俗易懂]
如何将EasyCVR通道设置为默认在线?
EasyCVR平台具有强大的数据接入、处理及分发能力,可支持海量视频的轻量化接入与汇聚管理。平台可支持多协议、多类型设备接入,包括:国标GB28181、RTMP、RTSP/Onvif、海康Ehome、海康SDK、大华SDK、宇视SDK等。
TSINGSEE青犀视频
2023/05/19
1.1K0
Symfony 服务容器:使用建造者创建服务
本文是依赖注入(Depeendency Injection)系列教程的第 5 篇文章,本系列教程主要讲解如何使用 PHP 实现一个轻量级服务容器,教程包括:
柳公子
2018/09/17
2.6K0
Symfony 服务容器:使用 XML 或 YAML 文件描述服务
本文是依赖注入(Depeendency Injection)系列教程的第 5 篇文章,本系列教程主要讲解如何使用 PHP 实现一个轻量级服务容器,教程包括:
柳公子
2018/09/17
1.8K0
会话 Cookie 未设置 Secure 属性
Web 应用程序设置了不含 Secure 属性的会话 Cookie,这意味着 Cookie 信息在传递的过程中容易被监听捕获造成信息泄露。标记为 Secure 的 Cookie 只会通过被 HTTPS 协议加密过的请求发送给服务端进行会话验证,它永远不会使用不安全的 HTTP 发送传输(本地主机除外),这意味着中间人攻击者无法轻松访问它。此外,在不安全的站点(在 URL 中带有 http://)无法使用 Secure 属性设置的 Cookie 值。
LuckySec
2022/12/01
4.5K0
会话 Cookie 未设置 Secure 属性
会话 Cookie 未设置 HttpOnly 属性
Web 应用程序设置了不含 HttpOnly 属性的会话 Cookie,因此注入站点的恶意脚本可能访问并窃取 Cookie 值。任何存储在会话令牌中的信息都可能会被窃取,它们可能被用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务。JavaScript Document.cookie API 无法访问带有 HttpOnly 属性的 Cookie,此类 Cookie 仅作用于服务器。例如,持久化服务器端会话的 Cookie 不需要对 JavaScript 操作,而应具有 HttpOnly 属性。会话 Cookie 设置 HttpOnly 属性,此预防措施有助于缓解跨站点脚本(XSS)攻击。
LuckySec
2022/12/01
3.3K0
会话 Cookie 未设置 HttpOnly 属性
nginx配置Symfony
server { listen 80; server_name blog.phpfs.com; root /data/web; rewrite ^/a
苦咖啡
2018/04/28
1.7K0
Symfony是什么
众所周知前面有说到PHP的七大框架,接下来就来说说Symfony框架,希望说的对大家有所帮助。
叫我可儿呀
2019/11/26
2.1K0
Symfony是什么
SAP 会话超时设置/密码有效期设置
为防止使用者长时间登入在系统中,可设定SAP的系统参数;让系统关闭超过设定连线时候的帐号。
matinal
2020/02/04
3.1K0
SAP 会话超时设置/密码有效期设置

相似问题

将Symfony2设置为不存储会话数据

10

Symfony将数据设置为多个choiceType

124

将匿名类型设置为null

75

将^位置设置为任意列

13

如何设置symfony会话

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文