小编aar*_*nk6的帖子

基于Ember.js的Web应用程序是否符合CSP标准?

Google Chrome的打包应用需要遵守CSP.假设您在部署之前编译了Handlebars模板,这是否适用于Ember.js?

出于某种原因,Google 没有将Ember.js列为推荐的MVC框架.

javascript security google-chrome ember.js google-chrome-app

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

如何在JavaScript for Automation中获取当前脚本文件夹的POSIX路径?

在AppleScript中,可以使用此行获取当前脚本所在的文件夹的POSIX路径:

POSIX path of ((path to me as text) & "::")
Run Code Online (Sandbox Code Playgroud)

结果示例: /Users/aaron/Git/test/

什么是JavaScript等效项?

macos applescript osascript osx-yosemite javascript-automation

4
推荐指数
2
解决办法
2734
查看次数

是否建议在 Sparkle 的 appcast 中保留旧版本?

一些使用 Sparkle 框架的应用程序开发人员在他们的应用程序中保留旧版本(通过使用多个<item>标签)。

我认为如果 Sparkle 在自上次更新以来发生多次更新时(例如,用户从 4.0.0 版升级到 4.0.5 版)显示中间版本的发行说明,那么这种做法是有意义的。但是,出于某种原因,Sparkle 不会这样做。

那么为什么要在 appcast 中保留旧版本呢?

macos sparkle

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

这个用于解密 AES-CCM 加密字符串的 JS 函数的 Python 等效项是什么?

我\xe2\x80\x99d喜欢在Python 3中解密AES加密的字符串(CCM模式)。

\n

以下 JavaScript 代码使用sjcl库的 JavaScript 代码可以正常工作:

\n
const sjcl = require(\'sjcl\');\n\nconst key = "ef530e1d82c154170296467bfe40cdb47b9ad77e685bbf8336b145dfa0e85640";\nconst keyArray = sjcl.codec.hex.toBits(key);\nconst iv = sjcl.codec.base64.fromBits(sjcl.codec.hex.toBits(key.substr(0,16))); \nconst params = {\n    "iv": iv,\n    "v": 1,\n    "iter": 1000,\n    "ks": 256,\n    "ts": 128,\n    "mode": "ccm",\n    "adata": "",\n    "cipher": "aes",\n    "salt": "",\n};\n\nfunction encrypt(data) {\n    const ct = JSON.parse(sjcl.encrypt(keyArray, data, params)).ct;\n    return sjcl.codec.hex.fromBits(sjcl.codec.base64.toBits(ct));\n}\n\nfunction decrypt(data) {\n    const ct = sjcl.codec.base64.fromBits(sjcl.codec.hex.toBits(data));\n    const paramsWithCt = JSON.stringify({ ...params, ...{ "ct": ct } });\n    return sjcl.decrypt(keyArray, paramsWithCt);\n}\n\nlet ct = encrypt("my secret string");\nconsole.log("Cipher …
Run Code Online (Sandbox Code Playgroud)

javascript python encryption aes sjcl

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

Redis Pub / Sub导致Web套接字连接挂起

我正在构建一个通过Web套接字连接到服务器的Web应用程序。服务器组件是基于一个小Ruby应用程序sinatraredisfaye-websocket。服务器正在Phusion Passenger上运行。一个单独的updater守护进程不断从各种来源获取更新,并将其发布到redis(使用redisgem和Redis::publish)。

为了将更新推送给客户端,我在Sinatra应用程序中尝试了以下操作:

get '/' do
  if Faye::WebSocket.websocket?(request.env)
    store = Redis.new
    ws = Faye::WebSocket.new(request.env)

    ws.on(:open) do |event|
      store.incr('connection_count')
      puts 'Client connected (connection count: %s)' % store.get('connection_count')
    end

    ws.on(:close) do |event|
      store.decr('connection_count')
      puts 'Client disconnected (connection count: %s)' % store.get('connection_count')
    end

    ws.rack_response

    store.subscribe(:updates) do |on|
      on.message do |ch, payload|
        puts "Got update"
        ws.send(payload) if payload
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

这仅部分起作用。客户端可以成功连接,也可以接收更新,但store.incrand store.decr调用不起作用。另外,连接似乎没有正确关闭-当我启动多个客户端时,我注意到连接堆积,乘客服务器最终停止工作。

日志输出:

devserver_1 | App 614 stdout: Got …
Run Code Online (Sandbox Code Playgroud)

ruby sinatra websocket redis

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