小编Mic*_*igh的帖子

如何将字符串解析为child_process.spawn的相应参数?

我希望能够获取命令字符串,例如:

some/script --option="Quoted Option" -d --another-option 'Quoted Argument'
Run Code Online (Sandbox Code Playgroud)

并将其解析为我可以发送到的内容child_process.spawn:

spawn("some/script", ["--option=\"Quoted Option\"", "-d", "--another-option", "Quoted Argument"])
Run Code Online (Sandbox Code Playgroud)

我发现的所有解析库(例如最小化等)都通过将其解析为某种选项对象等来做太多.我基本上想要相当于Node process.argv首先要创建的东西.

这似乎是本机API中令人沮丧的漏洞,因为exec它接受一个字符串,但不能安全地执行spawn.现在我通过使用以下方式来解决这个问题:

spawn("/bin/sh", ["-c", commandString])
Run Code Online (Sandbox Code Playgroud)

但是,我不希望它如此强烈地与UNIX绑定(理想情况下它也适用于Windows).HALP?

command-line parsing child-process node.js

15
推荐指数
2
解决办法
2505
查看次数

是否可以重命名Firebase实时数据库中的密钥?

我在想,有没有办法更新关键值?

我们使用以下数据:

我的数据

我正在使用set()来写入数据.现在,我希望用户编辑它们bookTitle,并且需要在两个地方进行更改.我尝试使用update()但似乎无法使其工作.我只能bookTitlebookInfoNOT中编辑books.

移动不是一种选择,因为它会擦除bookData.我也尝试使用push()编写,但后来,我无法正常搜索,因为我没有pushID(我需要搜索,因为用户不能拥有两本同名书籍)

那么,有没有办法更新键值?或者,有更好的方法吗?我接受建议.谢谢!

更新:这是我目前用来更新里面的书名bookInfo

var bookName = document.getElementById('bookName').value;

firebase.database().ref('books/' + bookName + '/bookInfo').update({
    bookTitle : bookName
});
Run Code Online (Sandbox Code Playgroud)

javascript json firebase firebase-realtime-database

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

基于Amazon Prefix的S3策略不起作用(AWS,IAM,STS,Ruby)

我正在构建一个使用亚马逊安全令牌服务的应用程序来创建临时用户来访问S3存储桶上的子目录.用户由具有对存储桶的完全读/写访问权限的IAM用户创建(以及创建用户所需的权限).

我创建的用户与会话过期完美配合等等,但我在制定正确的策略时遇到问题,以允许基于前缀的密钥列表.我希望最终用户拥有的权限是:

  1. 读取某些已定义前缀的对象
  2. 将对象写入相同的已定义前缀
  3. 列出驻留在已定义前缀中的所有对象

我设法读取和写入工作,但无论如何我尝试列表访问不能正常工作.这是我最接近时使用的Ruby代码:

AWS::STS::Policy.new do |policy|
  policy.allow(
    actions: ["s3:GetObject*", "s3:PutObject*", "s3:DeleteObject*"],
    resources: "arn:aws:s3:::#{ENV['PROJECT_BUCKET']}/#{folder_path}/*"
  )

  policy.allow(
    actions: ["s3:*"],
    resources: ["arn:aws:s3:::#{ENV['PROJECT_BUCKET']}/*", "arn:aws:s3:::#{ENV['PROJECT_BUCKET']}"]
  ).where(:s3_prefix).like("#{folder_path}/*")
end
Run Code Online (Sandbox Code Playgroud)

如果我记得,这让我可以阅读和写作,但不能列出.由于我还处于开发阶段,我已将代码更改为:

AWS::STS::Policy.new do |policy|
  # FIXME: This is way too permissive, but it's not working to be more specific.
  policy.allow(
    actions: ["s3:*"],
    resources: ["arn:aws:s3:::#{ENV['PROJECT_BUCKET']}/*", "arn:aws:s3:::#{ENV['PROJECT_BUCKET']}"]
  )
end
Run Code Online (Sandbox Code Playgroud)

这可以100%正常工作,显而易见的问题是没有任何东西限制在一个前缀,这将允许用户破坏彼此的工作.

我的政策中我做错了什么?

ruby amazon-s3 amazon-web-services amazon-iam

12
推荐指数
2
解决办法
3121
查看次数

作为非root用户在Docker容器中运行不受信任的代码有哪些潜在的安全问题?

到目前为止,我已经看到大量的墨水泄露了Docker如何不被隔离以允许任意容器在多租户环境中运行,这是有道理的."如果它是Docker中的root用户,请将其视为主机中的root用户." 那么非root呢?

如果我想获取一些不受信任的代码并在容器中运行它,只要容器作为非root非sudo用户运行,它是否可以安全地完成?做这样的事情有哪些潜在的安全隐患?

我很确定今天有生产应用程序这样做(CI系统,可运行的pastebins),但他们是否幸运没有一个坚定的攻击者或者这在生产系统中是否合理?

security multi-tenant docker

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

使用Rails 3.1 Asset Pipeline在web中存储webfonts

我正在尝试使用Rails 3.1 Asset Pipeline来存储我在多个应用程序中使用的一些字体.我已经尝试了几乎存储位置的每个组合,但我似乎无法让管道实际上拿起我的字体文件.他们会在public/assets我跑步时出现,rake assets:precompile但是他们没有任何asset_path助手可以使用,我也无法找出原因.

示例来自fonts.css.erb:

@font-face {
    font-family: 'MuseoSans';
    src: url('<%= asset_path('museosans_500_italic_webfont.eot') %>');
    src: url('<%= asset_path('museosans_500_italic_webfont.eot?#iefix') %>') format('eot'),
         url('<%= asset_path('museosans_500_italic_webfont.woff') %>') format('woff'),
         url('<%= asset_path('museosans_500_italic_webfont.ttf') %>') format('truetype'),
         url('<%= asset_path('museosans_500_italic_webfont.svg#webfontcWw5DXpH') %>') format('svg');
    font-weight: normal;
    font-style: italic;

 }
Run Code Online (Sandbox Code Playgroud)

输出ls app/assets/images(卡住了images因为assets/fonts没有工作,但同时缺乏工作):

museosans_100_italic_webfont.eot  museosans_500_webfont.eot
museosans_100_italic_webfont.svg  museosans_500_webfont.svg
museosans_100_italic_webfont.ttf  museosans_500_webfont.ttf
museosans_100_italic_webfont.woff museosans_500_webfont.woff
museosans_100_webfont.eot         museosans_700_italic_webfont.eot
museosans_100_webfont.svg         museosans_700_italic_webfont.svg
museosans_100_webfont.ttf         museosans_700_italic_webfont.ttf
museosans_100_webfont.woff        museosans_700_italic_webfont.woff
museosans_300_italic_webfont.eot  museosans_700_webfont.eot
museosans_300_italic_webfont.svg  museosans_700_webfont.svg
museosans_300_italic_webfont.ttf  museosans_700_webfont.ttf
museosans_300_italic_webfont.woff museosans_700_webfont.woff
museosans_300_webfont.eot         museosans_900_italic_webfont.eot
museosans_300_webfont.svg         museosans_900_italic_webfont.svg …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails ruby-on-rails-3.1 asset-pipeline

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

是否可以使用Firebase的云功能从api获取数据?

我正在考虑将api提供商的数据(新闻)导入Firebase实时数据库的移动应用程序项目,以便以后当用户搜索新闻时,他们会从我的Firebase数据库中获取它.问题是,我可以通过使用云功能来完成这项工作吗?如果没有,请您提供替代方案,为什么?

firebase google-cloud-functions

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