- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
虽然我可以使用 mktemp
和 touch
创建临时文件,但 mktemp
对脚本编写的可靠性和/或安全性有什么好处只是手动touch
文件?
最佳答案
mktemp
随机化名称。从安全的角度来看,这非常重要。
想象一下你做了这样的事情:
echo something > /tmp/temporary-file
在您的根运行脚本中。
有人(读过你的剧本)会这样做
ln -s /etc/passwd /tmp/temporary-file
之前。
这会导致 /etc/passwd
被覆盖,并且可能意味着从系统开始的不同不愉快的事情被破坏,并以系统结束被黑客入侵(当输入 something
可以精心制作)。
mktemp
命令可以在这种情况下为您提供帮助:
TEMP=$(mktemp /tmp/temporary-file.XXXXXXXX)
echo something > ${TEMP}
现在这个 ln/etc/passwd
攻击将不起作用。
对 mktemp 历史的简要了解:mktemp
命令由 OpenBSD 人员发明,并于 1997 年首次出现在 OpenBSD 2.1 中。他们的目标是提高 shell 脚本的安全性。以前的规范是在临时文件名中添加 $$
,这绝对是不安全的。现在所有的 UNIX/Linux 系统都有 mktemp
或它的替代品,它成为事实上的标准。有趣的是,mktemp
C 函数因不安全而被弃用。
关于linux - 在脚本中创建临时文件 : Advantages of mktemp over touch-ing a file?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11636790/
在 Advantage 中进行备份时,我们只想备份一些包含一些结构数据的表。这些表可能会在数据库更新中更改,但大多数表不会。其他表包含大量的 blob 数据:可能有 10 多场演出。 如果数据库更新出
我在 Advantage Database SQL 中遇到了一个简单的问题。 我有 M/D/YYYY 格式的日期,想将它们转换为 MM/DD/YYYY。通常在 SQL Server 中我只会使用 co
从这里安装 V10 64 位驱动程序后 http://devzone.advantagedatabase.com/dz/content.aspx?key=20&Release=15在 64 位 Win
create table WEBLOG ( ORDERNO CHAR(9) NOT NULL, USERNAME CHAR(50) NOT NULL, ACTION CHAR(255) NOT NUL
我刚刚在安装 xcode 5 后第一次打开了一个 Storyboard。(通常我会打开一个带有 Storyboard的选项卡。显然 xcode 对此有所不同。现在我打开了它。)然后我被问到是否要转换
在 FoxPro 应用程序运行时使用 Advantage Local Server .Net 提供程序更新 DBF 文件是否安全,该应用程序也可能正在访问 DBF 文件?即 Advantage 是否负
如何使用 Advantage ODBC 或 OLEDB 创建从 Sql Server 到 .dbf 表的链接服务器? 最佳答案 您可以使用 OLE DB 或 ODBC 驱动程序。我通常使用 OLE D
如何使用 Advantage ODBC 或 OLEDB 创建从 Sql Server 到 .dbf 表的链接服务器? 最佳答案 您可以使用 OLE DB 或 ODBC 驱动程序。我通常使用 OLE D
我正在创建一个在 Advantage 数据库服务器上运行的 Web 应用程序,这不是我个人选择的武器,但这是公司使用的。 我有几个最终用户需要能够查看的大列表,但是我似乎无法找到一种在 SQL 中翻阅
所以我可以调用sp_ModifyDatabase( 'LOGINS_DISABLED','False' )修改LOGINS_DISABLED的状态,但我找不到您如何检查设置的当前状态。有谁知道那在哪里
将主键添加到现有生产数据库的语法是什么?我继承了一个没有为任何东西设置主键的数据库,我需要在每个表上有一个主键才能将我的 ORM 用于应用程序。 我尝试谷歌搜索无济于事,Advantage 的文档并不
我可以很容易地找到我正在使用的客户端版本,但我如何才能找到服务器版本? 有一个AdsMgGetInstallInfo ace 函数和相应的存储过程sp_mgGetInstallInfo . 这些是否需
我无法在我的程序的多个实例中打开某个表。发生的事情是我试图让用户打开并用旧表(不包含在数据字典中)替换当前表(数据字典的一部分 - FileForm.ImagesTable)。它适用于程序的一个实例,
我有一个与优势数据库配合使用的 Windows 服务,偶尔会进行一些 http 调用。在极少数情况下,这些调用可能会很长。调整我的数据库连接超时。我没有使用数据模块或任何东西。只需手动创建连接即可。
我的 Advantage 数据库中有类似的内容:- drop table #test; create table #test (x cichar(50)); insert into #test (x)
我保留了一个 Advantage TAdsConnection 对象池,并根据请求分发它们。有时我会收到一个失败信息,导致 6610 错误,我假设是因为它处于空闲状态并且连接被重置。我可以运行任何旧查
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 6 年前。 Improve this ques
我希望使用 DATEPART 查询 Sybase Advantage 数据库服务器。我收到一条错误消息,指出以下“未找到标量函数:datepart”。是否有另一个具有类似功能的函数?我正在寻找约会的季
我正在尝试使用 Advantage .Net 数据提供程序从 Advantage 数据库中读取数据。当我执行我的应用程序时,出现以下错误: "Error 5175 the index was crea
首先我想说,我是Java编程和Sybase的新手。 我在连接 Sybase 数据库时遇到问题。 建立连接我已经完成: 安装advantage db的jdbc驱动; 将名为 CLASSPATH 的环境变
我是一名优秀的程序员,十分优秀!