我需要保护我的UDP流量。据我了解,DTLS协议(protocol)是最好的方法。还有另一个-IPsec-但它看起来不适合我,因为它不容易使用并且可能存在硬件问题。我发现有些库实现了DTLS。所以现在我要选择——OpenSSL还是GnuTls?你能告诉我什么更好用吗?有什么缺点或优点?或者可能有另一个库实现了DTLS支持? 最佳答案 我发现了以下有关库和DTLS的事实。还有另一个支持DTLS的库-CyaSSL,但它目前仅在测试模式下支持DTLS。虽然RFC4347的日期是2006年4月,但OpenSSL自2005年(v0.9.8)起
我正在开发一个应用程序,人们(任何人)可以上传将在服务器上编译和运行的代码(Java和可能的C(++)开始)。这当然是一个巨大的安全风险,并且有必要将所有这些都正确地放在沙箱中。虽然这个沙箱超出了这个问题的范围。假设已经解决了。在此之后,系统中还会有依赖于shell命令和PHP的exec()、shell_exec()等函数的函数。需要执行的命令不是很多,主要是java(c)、gcc、g++等。如果需要,可以很容易地列出我们需要的命令。一旦我们决定,用户将无法执行其他命令。比如有人上传一些java代码,要求服务器编译。然后服务器将运行javac。用户的输入只能改变javac的参数(使用e
我正在开发一个应用程序,人们(任何人)可以上传将在服务器上编译和运行的代码(Java和可能的C(++)开始)。这当然是一个巨大的安全风险,并且有必要将所有这些都正确地放在沙箱中。虽然这个沙箱超出了这个问题的范围。假设已经解决了。在此之后,系统中还会有依赖于shell命令和PHP的exec()、shell_exec()等函数的函数。需要执行的命令不是很多,主要是java(c)、gcc、g++等。如果需要,可以很容易地列出我们需要的命令。一旦我们决定,用户将无法执行其他命令。比如有人上传一些java代码,要求服务器编译。然后服务器将运行javac。用户的输入只能改变javac的参数(使用e
我正在编写一个生成子进程的程序。出于安全原因,我想限制这些进程可以做什么。我知道程序外部的安全措施,例如chroot或ulimit,但我想做的不止于此。我想限制子进程完成的系统调用(例如防止调用open()、fork()等)。有什么办法吗?最理想的情况是,被阻塞的系统调用应该返回一个错误,但如果这不可能,那么终止进程也是好的。我想这可以用ptrace()来完成,但是从手册页来看我真的不明白如何将它用于这个目的。 最佳答案 听起来像SECCOMP_FILTER,在内核版本3.5中添加,就是您所追求的。libseccomplibrary
我正在编写一个生成子进程的程序。出于安全原因,我想限制这些进程可以做什么。我知道程序外部的安全措施,例如chroot或ulimit,但我想做的不止于此。我想限制子进程完成的系统调用(例如防止调用open()、fork()等)。有什么办法吗?最理想的情况是,被阻塞的系统调用应该返回一个错误,但如果这不可能,那么终止进程也是好的。我想这可以用ptrace()来完成,但是从手册页来看我真的不明白如何将它用于这个目的。 最佳答案 听起来像SECCOMP_FILTER,在内核版本3.5中添加,就是您所追求的。libseccomplibrary
我想要一个用户特权(非root)进程以用户nobody身份启动新进程。我已经尝试直接调用setuid,但在Ubuntu8.04上以-1EPERM失败:#include#includeintmain(){setuid(65534);while(1);return0;}我应该怎么做呢? 最佳答案 您将需要系统管理员的帮助和充分信任。普通用户无法代表其他用户运行他们选择的可执行文件。她可能会通过适当的设置将您的应用程序添加到/etc/sudoers,您将能够像使用sudo-unobody一样运行它。这将适用于脚本和二进制可执行文件。另一种
我想要一个用户特权(非root)进程以用户nobody身份启动新进程。我已经尝试直接调用setuid,但在Ubuntu8.04上以-1EPERM失败:#include#includeintmain(){setuid(65534);while(1);return0;}我应该怎么做呢? 最佳答案 您将需要系统管理员的帮助和充分信任。普通用户无法代表其他用户运行他们选择的可执行文件。她可能会通过适当的设置将您的应用程序添加到/etc/sudoers,您将能够像使用sudo-unobody一样运行它。这将适用于脚本和二进制可执行文件。另一种
我正在制作一个Perl模块,它为第3方API提供OO接口(interface)。我想在将用户密码传输到第3方API之前以加密格式捕获和存储用户密码。该模块旨在仅在基于UNIX的系统上运行。我生成了以下执行捕获功能的脚本-从它仅以加密格式存储密码变量的意义上说,这是正确的吗?我担心密码可能在其他地方的内存中可用(例如,在$_下,尽管$_是undef)。注意。我使用STDIN而不是@ARGV,假设操作系统不会记录条目或在进程名称中包含密码。我正在使用替代正则表达式而不是chomp,这样输入就不必存储在临时的非加密变量中。我还假设在输入捕获软件仍然可以捕获用户输入的意义上不可能完全安全。提前
我正在制作一个Perl模块,它为第3方API提供OO接口(interface)。我想在将用户密码传输到第3方API之前以加密格式捕获和存储用户密码。该模块旨在仅在基于UNIX的系统上运行。我生成了以下执行捕获功能的脚本-从它仅以加密格式存储密码变量的意义上说,这是正确的吗?我担心密码可能在其他地方的内存中可用(例如,在$_下,尽管$_是undef)。注意。我使用STDIN而不是@ARGV,假设操作系统不会记录条目或在进程名称中包含密码。我正在使用替代正则表达式而不是chomp,这样输入就不必存储在临时的非加密变量中。我还假设在输入捕获软件仍然可以捕获用户输入的意义上不可能完全安全。提前
我见过几个像这样的死线程IPAddressRestrictioninBonsaiElasticSearchasaHerokuAddon还有这个https://stackoverflow.com/questions/16121531/tomcat-restrict-ip-access-ip-range-format这是我第一次将ElasticSearch服务器托管到Linux机器上。假设我的ES服务器位于http://161.241.117.47:9200并且我有一个应用服务器位于161.241.117.41问题是我可以如何处理我的ip表,以便只有来自161.241.117.41的161