小编tre*_*mby的帖子

Laravel Socialite 处于“无状态”模式——安全影响?

Laravel Socialite有一个“无状态”模式,禁止将任何内容存储到会话中。从源代码的读取来看,它并没有做任何不同的事情——它只是不存储或检索这些值。

作为其中的一部分,它假设OAuth 状态始终有效。

检查这一点是Twitter 登录文档告诉我们要做的事情之一。

所以我想知道使用社交名流的无状态模式可能会产生什么样的安全影响。

如果问题很严重,对于作为无状态 API 运行的应用程序,会有什么样的解决方法?我可以将内容存储在 Redis 存储中,但我不确定如何将任何信息与当前用户联系起来。例如,通过重新实现 Socialite 的功能,我可以将状态存储在缓存中,并以用户 IP 和浏览器指纹的一些哈希值作为键控。但这看起来非常混乱。

security oauth laravel laravel-socialite

5
推荐指数
1
解决办法
2328
查看次数

如何避免重新映射通过无服务器框架从 Lambda 传回 API 网关的标头?

当我尝试使用挑战标头在无服务器Lambda 函数中进行响应时遇到了一个问题WWW-Authenticate。

我在我的回复中设置

{
    statusCode: 401,
    headers: {
        'WWW-Authenticate': 'Basic realm="My realm"',
    },
    body: "",
}
Run Code Online (Sandbox Code Playgroud)

该函数运行成功,但在响应中我没有WWW-Authenticate标题;相反,我有一个x-amzn-Remapped-WWW-Authenticate标题。

我怎样才能让这个标头逐字通过?

我阅读了有关传递自定义响应标头的文档,但似乎这些需要在serverless.yml. 由于这些响应标头需要基于请求标头是动态的,我认为这对我没有帮助。

该函数是默认lambda-proxy类型。

amazon-web-services node.js aws-lambda serverless-framework

5
推荐指数
1
解决办法
989
查看次数

在Vagrant上查看文件以进行更改,文件修改时间不会更新

我们正在尝试Vagrant.我们在主机上通过NFS与guest虚拟机共享一个Web应用程序目录.在开发网站时,我们很快就开始遇到问题.

我们正在运行gulp-watch来查看样式表和javascript文件的更改并运行任务,但是最多一分钟内没有获取更改.

此外,Laravel没有注意到刀片模板正在被更改,因此没有重新编译它们,并且正在显示旧的视图模板.

我最终将问题归结为一个非常简短的PHP脚本来演示错误.

<?php
header('Content-Type: text/plain');
$file = 'test.html';

echo "modified: " . date('r', filemtime($file)) . "\n";
echo "contents: " . file_get_contents($file) . "\n";
Run Code Online (Sandbox Code Playgroud)

这将获得另一个文件的修改时间test.html并输出其内容.这给了奇怪的行为.当test.html通过主机更改(增加其全部内容,单个整数)然后刷新页面时,它将按预期工作(新文件修改日期和新文件内容)或文件的内容将更新但文件修改日期不会.在点击刷新时,修改日期将赶上.这是后一种情况的一个例子.

示范

我后来发现,如果切换"修改"和"内容"行以便在查看修改日期之前检索内容,我每次都会得到预期的输出.

问题是导致这种情况的原因以及我们如何解决这个问题,是否与观察文件变更的问题有关?

nfs vagrant laravel grunt-contrib-watch gulp-watch

2
推荐指数
1
解决办法
3198
查看次数

无法使用 Django 设置 Jinja2

我已经安装了 Django 1.9.7,我在 Ubuntu 上安装了 Python 3.4.3 和 2.7.10。

这些是我遵循的步骤:

  1. 做了一个新项目 django-admin startproject testproject
  2. cd testproject/testproject
  3. 在项目中制作了一个应用程序 django-admin startapp testapp
  4. 为该应用程序中的模板创建了一个目录,mkdir testapp/templates并在其中添加了一个非常基本的index.html模板
  5. 编辑settings.py将模板后端更改为django.template.backends.jinja2.Jinja2,通过编辑默认设置文件的第 57 行,并添加testproject.testapp到INSTALLED_APPS; TEMPLATES因此,该部分是这样的:

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.jinja2.Jinja2',
            'DIRS': [],
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
            },
        },
    ]
    
    Run Code Online (Sandbox Code Playgroud)
  6. 已编辑urls.py、添加from testproject.testapp import views和 URL 模式url(r'^$', views.index),

  7. 编辑testapp/views.py添加

    def index(request):
        return render(request, …
    Run Code Online (Sandbox Code Playgroud)

django jinja2

1
推荐指数
1
解决办法
1937
查看次数

如何指定给定字体系列可用的字体粗细?

我使用的是网络字体,并且权重为300(浅)和700(粗体)。这些是网站使用的唯一权重,我在html元素中指定默认字体权重应为300。

当浏览器遇到<strong>标签时,将应用默认样式(不确定是浏览器的默认工作表还是normalize.css)font-weight: bolder。这对我来说很有意义:我想大胆地迈出一步。并说我有三个权重,我希望它可以从继承的权重转移到下一步。

然而,bolder在<strong>常规正文元素的地方颠簸从300重量多达400个,而浏览器与300相同重量的字体为周围的文字渲染这一点。显然,我希望它实现下一个可用的权重为700,并使用该权重。

为了lighter和的目的,是否有一种方法可以告诉CSS /浏览器哪些字体粗细可用于给定的字体系列bolder。

css webfonts

1
推荐指数
1
解决办法
306
查看次数