小编Dam*_*nic的帖子

您可以从单个Nodejs模块导出多个类吗?

目前,我在自己的文件中有4个子类.我要求他们都在同一个文件中.我想知道我是否可以在一个模块中包含所有这四个类.目前,我正在这样导入它们

var Jack = require('./Jack.js');
var JackInstance = new Jack();
var Jones = require('./Jones.js');
var JonesInstance = new Jones();
Run Code Online (Sandbox Code Playgroud)

我想像这样导入它们

var People = require('./People.js');
var JackInstance = new People.Jack();
Run Code Online (Sandbox Code Playgroud)

甚至

var Jack = require('./People.js').Jack;
var JackInstance = new Jack();
Run Code Online (Sandbox Code Playgroud)

我的课程定义如此

class Jack{
    //Memeber variables, functions, etc
}

module.exports = Jack;
Run Code Online (Sandbox Code Playgroud)

javascript node.js node-modules

32
推荐指数
2
解决办法
3万
查看次数

共享主机上的Symfony 2 - 允许的内存大小耗尽

我有这种绝望的情况.

我需要在没有SSH访问的情况下在共享主机上启动Symfony2应用程序.由于缓存预热,Symfony在首次启动时使用的内存比后续启动时多得多.现在,我无法cache:clear通过控制台运行,当我手动尝试加载页面时,它会产生一个错误:

致命错误:2681行/home/domain/domain.com/app/bootstrap.php.cache中允许的内存大小为67108864字节(试图分配32个字节)

我无法增加内存限制,当我尝试从本地计算机上传生成的缓存时,在页面加载时它会给我完整的bollocks:

致命错误:未捕获异常'UnexpectedValueException',消息'流或文件"/home/domain/domain.com/app\logs/prod.log"无法打开:无法打开流:没有此类文件或目录/home/domain/domain.com/app/cache/prod/classes.php:5705

有没有人知道如何减少对内存的渴望,或者至少用已经制作的prod缓存来提供它?

php caching out-of-memory symfony

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

使用django-el-pagination(懒惰分页)保留浏览器历史记录

我使用django-el-pagination进行延迟加载条目.

当我点击一个条目然后使用浏览器后退按钮时,所有延迟加载都消失了,我试图添加window.history.pushState()但是我只获得当前页面,即?page=4当我使用浏览器后退按钮时,所有条目都在顶部没有加载.

有没有办法实现正确的历史记录,以便用户在使用浏览器后退按钮时回到同一个地方?

 $.endlessPaginate({
    paginateOnScroll: true,
    paginateOnScrollMargin: 400,
    paginateOnScrollChunkSize: 2,
    onCompleted: function(context, fragment) {
        window.history.pushState(null, null, context.url);

    }
});
Run Code Online (Sandbox Code Playgroud)

编辑1

这是.endlessPaginate函数的JavaScript :

'use strict';

(function ($) {

    // Fix JS String.trim() function is unavailable in IE<9 #45
    if (typeof(String.prototype.trim) === "undefined") {
         String.prototype.trim = function() {
             return String(this).replace(/^\s+|\s+$/g, '');
         };
    }

    $.fn.endlessPaginate = function(options) {
        var defaults = {
            // Twitter-style pagination container selector.
            containerSelector: '.endless_container',
            // Twitter-style pagination loading selector.
            loadingSelector: …
Run Code Online (Sandbox Code Playgroud)

javascript django jquery pagination

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

Symfony路由 - 将区域设置作为子域,并回退到默认值

我正在尝试使用表示当前区域设置的子域来设置路由系统.路由是通过@Routing注释设置的,如下所示:

/**
 * @Route(
 *      "/",
 *      name="homepage",
 *      host="{locale}.{domain}",
 *      defaults={"locale" = "en", "domain" = "%domain%"},
 *      requirements={"locale" = "en|de|fr", "domain" = "%domain%"}
 * )
 */
Run Code Online (Sandbox Code Playgroud)

适用于URL的类似en.somedomain.comde.somedomain.com,但无法找到正确的路由somedomain.com,没有区域设置.

我理解,因为host参数,设置为表示确切的locale.domain模式,但我找不到告诉Symfony路由系统可能有额外的默认方式host.

周围搜索了这一点,但没有发现什么特别的.非常感谢任何帮助!

UPDATE

实际上有一种方法可以通过@Route在注释中添加另一个而不使用host参数来实现:

/**
 * @Route(
 *      "/",
 *      name="homepage_default",
 *      defaults={"locale" = "en"}
 * )
 */
Run Code Online (Sandbox Code Playgroud)

但那看起来有点脏,而且我没有%domain%在那里使用参数,这对我很重要 - 比方说,如果我需要另一个子域用于移动版本.

php routing locale annotations symfony

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

PHP password_verify()和慢等于比较

我一直试图找到有关是否password_verify()使用长度 - 恒定时间比较来避免定时攻击的信息.

现在,简单的例子:

$hash = '$2y$10$HH3906lfby7HOy1N3duQh.Kju.84ct6AcMZm2p/SYZsZSXuYWvvT.';

$startTime = microtime(TRUE);
password_verify('rasmuslerdorf', $hash);
$endTime = microtime(TRUE);

$time = $endTime - $startTime;
Run Code Online (Sandbox Code Playgroud)

这总是产生稍微不同的输出,根据这篇文章("为什么这个页面上的散列码比较"长度常数"时间段中的散列?"段落),可以用于定时攻击来获取散列.我认为这些结果看起来有点随机,但它们肯定不会保持不变.

问题是,是否password_verify()使用长度 - 恒定时间比较来避免定时攻击?在文档中没有关于它的信息,并且由于我的浅薄经验,我无法很好地解释函数处理时间结果.

php security hash

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

Django 1.9 AJAX表单CSRF令牌403错误 - "未设置CSRF cookie"

我已经在SO上看到了很多,但没有什么能解决我的问题.

问题:

启用CSRF中间件后,Django在AJAX表单请求上响应403,说明:

"未设置CSRF cookie."

文档之后,实现了一个JS功能,它设置了自定义的"X-CSRFToken"标头.

它按预期工作,从浏览器获取"csrftoken" cookie并将其与AJAX请求一起发布:

x-csrftoken: 1a0u7GCQG0wepZHQNThIXeYpMy2lZOf2
Run Code Online (Sandbox Code Playgroud)

但回应仍然是403.

尝试的解决方案:

我已经尝试过在SO或网上找到的所有内容,特别是:

  • 检查是否启用了中间件:

    MIDDLEWARE_CLASSES = [
        ...
        'django.middleware.common.CommonMiddleware',
        'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        ...
    ]
    
    Run Code Online (Sandbox Code Playgroud)
  • 启用了Cookie的不同浏览器;

  • 装饰我的观点@ensure_csrf_cookie;

  • {% csrf_token %}在我的模板中设置;

  • 使用render获取正确请求上下文的快捷方式

  • 设置自定义CSRF_COOKIE_NAMECSRF_HEADER_NAME我的settings.py;

  • 明确地设定CSRF_COOKIE_SECURE = FalseCSRF_COOKIE_HTTPONLY = False;

  • 明确CSRF_TRUSTED_ORIGINS设定;

  • 测试开发和生产服务器;

  • 即便request.META["CSRF_COOKIE_USED"] = True在我看来,正如有人建议的那样.

仍然一无所获.

头:

如果我使用@csrf_exemptprint(request.META)在我的视图中,很明显自定义标题"X-CSRFToken"存在于请求中并根据Django文档格式化,带有"HTTP_"前缀,用下划线替换连字符,全部大写:"HTTP_X_CSRFTOKEN".

更重要的是,它的价值与Django设置的cookie相匹配.

饼干:

奇怪的是,如果我尝试print(request.COOKIES)在我的视图中,在页面和表单加载上我可以看到 …

django cookies ajax csrf fetch-api

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

CryptoJS和密钥/ IV长度

我对AES密钥和IV长度有疑问.

首先,例如,如果我使用药物 OpenSSL扩展和openssl_encrypt()方法,我可以清楚地看到256位AES的密钥应该是32字节,如果它不同于16字节,则IV会发出警告.我能理解,一切都很好.

然而,在CryptoJS图书馆中,密钥和IV长度令人沮丧.这是一些例子:

var text = "test",
    key  = "us5N0PxHAWuIgb0/Qc2sh5OdWBbXGady",
    iv   = "zAvR2NI87bBx746n";

key = CryptoJS.enc.Base64.parse(key);
iv  = CryptoJS.enc.Base64.parse(iv);

crypted = CryptoJS.AES.encrypt(text, key, { iv: iv });
Run Code Online (Sandbox Code Playgroud)

其中key为32字节,IV为16.CryptoJS需要解析它,并在CryptoJS.enc.Base64.parse()我得到相应的48和24字节后.我希望这些值会被截断为所需的256位AES长度,并且进一步扩展到n个字节将是无关紧要的,因此产生的密文将是相同的.

但实际上并没有发生这种情况.当我传递给CryptoJS.AES.encrypt()更大的密钥甚至 IV时,它产生不同的输出.所以我的问题是,为什么?在这种情况下,CryptoJS 库和OpenSSL有什么区别?

javascript cryptojs

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

JS Twin-Bcrypt盐模式

我一直在探索Twin-Bcrypt JavaScript库,并发现了一件奇怪的事情.有一次,我在服务器端使用PHP创建了自己的salt base64_encode(openssl_random_pseudo_bytes(16))并在TwinBcrypt.hash()函数中使用它,由于库中的常规模式不匹配,因此响应盐无效.所以,模式是:

var SALT_PATTERN = /^\$2[ay]\$(0[4-9]|[12][0-9]|3[01])\$[.\/A-Za-z0-9]{21}[.Oeu]/;
Run Code Online (Sandbox Code Playgroud)

我的盐看起来很好,除了一件事 - 这到底是什么 - [.Oeu]

我的第一个问题是,为什么他们希望盐以,或O,或e结束,或者?据我所知openssl_random_pseudo_bytes()生成安全的CSPRNG,但由于模式JS库不想接受它.

第二个问题 - 盐是否有任何安全理由以/[.Oeu]/模式结束?

我会非常感谢任何帮助,因为没有太多关于它的信息.

javascript regex salt bcrypt

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

切片范围的 Go 循环索引

我有一个相当简单的问题,但在任何地方都找不到答案。我正在迭代一系列切片,如下所示:

for index, arg := range os.Args[1:] {
    s += fmt.Sprintf("%d: %s", index, arg)
}
Run Code Online (Sandbox Code Playgroud)

据我了解,range迭代切片,并index从范围创建,并且它是从零开始的。我得到输出:

0: argument_1
1: argument_2
// etc.
Run Code Online (Sandbox Code Playgroud)

但这不是我所期望的 - 我需要range保留该切片的索引,因此我的输出如下所示:

1: argument_1
2: argument_2
// etc.
Run Code Online (Sandbox Code Playgroud)

最明显的方法是shift在循环中添加索引:

shift := 1
for index, arg := range os.Args[shift:] {
    index += shift
    s += fmt.Sprintf("%d: %s", index, arg)
}
Run Code Online (Sandbox Code Playgroud)

但我想知道,是否有更多的“Go-ish”方式来做到这一点,以及如何在像这样在 Go 中创建切片时保留索引?

loops go slice indices

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

Apache RewriteRule 丢弃 SetInputFilter DEFLATE 配置指令

我有以下(简化的)文件夹/文件结构:

/.htaccess
/test.php
/api/web/index.php
Run Code Online (Sandbox Code Playgroud)

以及 apache 配置中的以下指令:

<IfModule mod_deflate.c>
    <IfModule mod_filter.c>
        SetInputFilter DEFLATE
   </IfModule>
</IfModule>
Run Code Online (Sandbox Code Playgroud)

我正在发送一个带有 gzipped 正文的 POST 请求,其中包含适当的标头:

POST /test.php HTTP/1.1
Host: 192.168.1.248
Authorization: Bearer ed717c077e4bf81201196011adb457731b24e19d
Content-Type: application/json
Content-Encoding: gzip
Run Code Online (Sandbox Code Playgroud)

我有.htaccess文件的以下配置:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^api/(.*) api/web/index.php/$1 [NC,L]
Run Code Online (Sandbox Code Playgroud)

问题是,如果我张贴到/test.php,一切都按预期工作,正文放气,我可以恰到好处地访问解压缩的内容。

但是,如果我发布到重定向(/api//api/v1/project)的内容,则index.php脚本不会解压缩正文。

我认为它必须与RewriteRule忽略SetInputFilter指令的指令有关,但是,我该如何避免这种情况?

我试图SetInputFilter直接在 .htaccess 中添加指令而没有解决问题(可能是它不在正确的地方?)。

你知道我该如何解决这个问题吗?

php apache .htaccess mod-rewrite mod-deflate

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