奇淫巧技之程序启动后在进程列表中隐藏密码等关键信息2

简介:

在上一篇总结中,在进程列表中隐藏密码是通过在main函数中做处理来隐藏的.

如下:

复制代码
 1 int _main(int argc, char* argv[], char** envp) {
 2 
 3     省略中间一些代码内容
 4 
 5     // hide password from ps output
 6 
 7     for (int i = 0; i < (argc - 1); ++i) {
 8 
 9         if (!strcmp(argv[i], "-p") || !strcmp(argv[i], "--password")) {
10 
11             char* arg = argv[i + 1];
12 
13             while (*arg) {
14 
15                 *arg++ = 'x';
16 
17             }
18 
19         }
20 
21     }
复制代码

 

可是,上面的代码并不是总能管用.为啥呢?因为main函数一进去,mongo并没有马上在进程列表里面把密码掩盖,而是先做了一些初始化操作,就是我在上面省略的代码部分.

因为中间省略的那部分代码也是要花费一定时间的,所以在比较极端的场景下,同时大并发执行mongo ip/db -u account -p password jsfile时候,是有可能被进程监控程序监控到带有明文密码的mongo进程的.

这个时候怎么解决呢?

mongo接受的服务器端js脚本中,也是可以执行登录操作的,把登录操作放到js中,这样,就可以用mongo ip jsfile方式来执行服务器端js了.

js的内容中需要添加:

复制代码
db = db.getSiblingDB('dbname')
var login_ret = db.auth('user','password')
if (1 == login_ret){
    //do something
}else{
    //print login failed message
}
复制代码

如果账号和密码是可变的,到时候可以通过将js脚本中user,password部分内容替换掉,就可以正常工作了.

总结:本篇讲的在进程列表中隐藏密码关键信息的方式是linux here document.

最后需要留意的是,如果直接执行mongo ip jsfile,else和if语句块的右花括号可以换一行,但如果jsfile是通过linux here document方式传入,则else和if语句块的右花括号必须是在同一行的.


本文转自leipei博客园博客,原文链接:http://www.cnblogs.com/leipei2352/p/6160873.html,如需转载请自行联系原作者


目录
相关文章
|
1月前
|
缓存 负载均衡 安全
在Python中,如何使用多线程或多进程来提高程序的性能?
【2月更文挑战第17天】【2月更文挑战第50篇】在Python中,如何使用多线程或多进程来提高程序的性能?
|
1月前
|
存储 监控 Linux
【Shell 命令集合 系统管理 】⭐⭐⭐Linux 查看当前正在运行的进程信息 ps命令 使用指南
【Shell 命令集合 系统管理 】⭐⭐⭐Linux 查看当前正在运行的进程信息 ps命令 使用指南
42 0
|
3月前
|
Linux
|
2天前
|
Java Shell Linux
【linux进程控制(三)】进程程序替换--如何自己实现一个bash解释器?
【linux进程控制(三)】进程程序替换--如何自己实现一个bash解释器?
|
1月前
|
监控 Linux Shell
【Shell 命令集合 系统管理 】⭐Linux 显示系统中的进程信息 procinfo命令 使用指南
【Shell 命令集合 系统管理 】⭐Linux 显示系统中的进程信息 procinfo命令 使用指南
26 0
|
1月前
|
Shell Linux 调度
【Linux】—— 进程程序替换
【Linux】—— 进程程序替换
|
1月前
|
Java Linux Shell
进程的程序替换(exec函数)【Linux】
进程的程序替换(exec函数)【Linux】
|
2月前
|
数据采集 Web App开发 文字识别
高并发数据采集:Ebay商家信息多进程爬虫的进阶实践
高并发数据采集:Ebay商家信息多进程爬虫的进阶实践
|
2月前
|
监控 Unix Linux
socket监控进程,并对程序执行有关操作。
socket监控进程,并对程序执行有关操作。
|
2月前
|
算法 Ubuntu Linux
【操作系统】探究进程奥秘:显示进程列表的解密与实战
【操作系统】探究进程奥秘:显示进程列表的解密与实战
36 0