草庐IT

终端安全

全部标签

windows - Windows 上的安全命名共享内存,因此只有特定进程可以打开

有没有办法在Windows中使用命名共享内存设置权限,以便由进程而不是用户完成访问控制?我想让一个程序创建内存,传递句柄或传回PID,以便客户端进程可以访问内存。应拒绝所有其他进程访问。谢谢 最佳答案 访问控制仅由安全主体进行,安全主体可以是用户、组、计算机等。如果你有一个你想与另一个进程共享的对象,你可以使用DuplicateHandle. 关于windows-Windows上的安全命名共享内存,因此只有特定进程可以打开,我们在StackOverflow上找到一个类似的问题:

windows - 捕获 Windows 终端关闭正在运行的进程

在命令提示符窗口中,我有一个正在运行的进程。当进程仍在执行时,我单击命令提示符窗口一角的(红色)“X”。命令提示符窗口关闭,正在运行的进程终止。在Linux上,关闭正在运行的进程的父终端将向该进程发送SIGHUP。我如何在Windows上捕获此事件? 最佳答案 SIGHUP的等价物是通过您在SetConsoleCtrlHandler注册的回调提供的.您的回调函数将在dwCtrlType=CTRL_CLOSE_EVENT的任意线程池线程上调用。您有5秒的时间进行清理,您无法取消关闭。示例代码可在thisMSDNarticle中找到

windows - 如果 git index.lock 存在,我可以安全地删除它,还是需要更多操作来验证完整性?

在过去的几周里,我收到了几次关于index.lock存在的消息。删除该文件作为解决方案在gitindex.lockFileexistswhenItrytocommit,butcannotdeletethefile删除该文件是否足够,或者我还需要执行其他操作(是否有验证完整性等的方法?)。这是在安装了git命令行工具、TortoiseGIT和SourceTree的Windowsx64系统(完全修补)上。 最佳答案 没有otheranswers提及index.lock的用途。然而,它记录在Git发行版中,位于文件“Documentati

windows - Windows 允许的文件名对于注入(inject)是安全的吗? (SQL、JavaScript 等)

我想问一下Windows允许的文件名对于SQL(Oracle和通用)、JS、xml等注入(inject)是否安全。检查并替换以下字符:/:*?"|(还有它们的ascii值等)。长度也不能超过~180个字符检查是在客户端(仅用于可用性)和服务器端(用于安全性)安全地进行的文件名保存到oracleDB中,有oracle->java->xml->xslt->browser这样的流程显示。编辑:@Bohemian的回答指出了SQL注入(inject)的不安全部分(使用准备好的语句可以简单地禁止它)。JS或xml注入(inject)如何?(可能导致XSS或通过xslt访问硬盘)

python - 将 python 2.7.7 更新到 2.7.9 - 安全吗?

我打算从Python2.7.7更新到2.7.9(或更好的2.7.10)版本。因为我有很多正在进行的项目,所以我必须非常小心。我的问题是-更新到2.7.9/10版本是否安全?一切都会照常进行吗?如果我从pythonofficialweb下载msi就足够了吗?并安装它? 最佳答案 Python的次要版本升级(即2.7.x到2.7.y)通常是向后兼容的,出现故障的风险很低。参见https://hg.python.org/cpython/raw-file/15c95b7d81dc/Misc/NEWS对于2.7.9到2.7.10之间的所有细节

windows - RubyMine 终端不工作 Win10

我最近在我的Windows10机器上安装了RubyMinev7.1.4。我加载了一个现有项目并尝试在RubyMine中打开一个终端窗口。当我第一次打开终端时,它是空白的,几分钟后出现标准提示。但是出现提示后,我无法在终端中输入任何内容。光标闪烁,好像在等待输入,但我无法输入任何内容。我可以使用普通的命令提示符来运行我需要的命令,但我想让RubyMine中的终端正常工作。终端的设置似乎是正确的,它指向“cmd.exe”。我不确定它是否相关,但我的RubyMine安装在我的C:驱动器上,但代码存储库在我的E:驱动器上。如果您有任何建议,我们将不胜感激。谢谢! 最

c++ - tchar 安全函数——UTF-8 常量的计数参数

我正在将一个库从char移植到TCHAR。根据MSDN,该片段的计数参数是多字节字符数,而不是字节数。那么,我做对了吗?我在VC9中的项目属性显示“使用unicode字符集”,我认为这是正确的,但我不知道这会如何影响我的计数参数。_tcsncmp(access,TEXT("ftp"),3);//ordoiwant_tcsnccmp?“仅在Windows平台上受支持,_mbsncmp和_mbsnbcmp是strncmp的多字节版本。_mbsncmp最多比较count个多字节字符,_mbsnbcmp最多比较count个字节。它们都使用当前的多字节代码页。_tcsnccmp和_tcsncmp

windows - 如何在 if 子句中安全地回显变量的值而跳过双引号?

运行@echooffsetlocalenabledelayedexpansionsetx=somevaluewithunsafe(^&^()")charactersinsideif1==1(echo"valueofx(!x!)isinteresting")给予"valueofx(somevaluewithunsafe(&()")charactersinside)isinteresting"我必须将要回显的值放在双引号内以避免解析错误。但是,我不想打印这些双引号。有什么方法可以暂时(只是为了安全地将它传递给echo命令)打印引用值? 最佳答案

c - 在终端应用程序中检测用户操作系统,C

如何在C语言的终端应用程序中确定用户的操作系统?例如,在下面的代码中,我应该将windows和linux替换为什么?/*pseudocode*/if(windows){system(cls)}elseif(linux){system(clear)}else{...}我应该提一下,我是C的初学者,需要这样的东西,这样我的代码就可以在Windows和/或Linux上运行,而无需为每个单独的源代码。 最佳答案 通常,这是通过构建系统中的宏完成的(因为无论如何您都必须为每个系统构建代码。例如gcc-DLINUXmyfile.c然后在myfi

c++ - GlobalMemoryStatusEx 线程安全吗?

来自MSDNpage:“GlobalMemoryStatusEx函数返回的信息是易变的。不能保证对该函数的两次连续调用将返回相同的信息。”这是有道理的,但是我无法确定这是否是线程安全的。有人确定知道一种或另一种方式吗?我已尝试使用谷歌搜索,但找不到此信息。 最佳答案 MSDN页面上说的是函数返回的信息是随时间变化的:这就是“volatile”的意思。例如,GetSystemTime返回的信息也是“易变的”。关于过程的其他不同概念是“可重入”和“线程安全”。可重入意味着过程使用的信息依赖于局部变量,而不是全局变量,这可以解释为线程安全