如何扫描上传的文件以查找病毒,特洛伊木马等?
考虑阻止一些用户上传一些讨厌的东西。
我正在使用Heroku和Amazon S3。
答案 0 :(得分:3)
它支持REST / JSON防病毒Web服务
这是帖子 - https://stackoverflow.com/questions/4104985/antivirus-scanning-service
答案 1 :(得分:1)
对于路人问同样的问题:
Metascan。它是免费的,有一个简单的API!
答案 2 :(得分:0)
对于将来接近此问题的任何人,我们最近创建了CarrierWave::AttachmentScanner,以便轻松地将病毒和恶意软件扫描整合到Rails和CarrierWave中。
该插件基本上使用carrierwave挂钩到文件上传中,并将请求发送到JSON / REST Web服务以检查文件。
如果文件与已知签名匹配,则会引发CarrierWave:: IntegrityError
。
答案 3 :(得分:0)
安装ClamAV:
macOS
brew install clamav
Ubuntu
sudo apt-get install clamav clamav-daemon -y
设置after_create
回调以扫描新文件:
after_create :scan_for_viruses
def scan_for_viruses
raise "Virus discovered!" if Clamby.virus?( self.path )
end
答案 4 :(得分:0)
您可以参考我的博客文章,其中介绍了如何在Kubernetes上运行ClamAV(使用Clamby gem)作为服务以及DRY实施以在RoR应用程序中使用它的服务:
此外,您只需选择所需的零件并将其与您选择的零件组合即可。
答案 5 :(得分:0)
您可以使用clamav buildpack向heroku-app添加病毒扫描功能。 然后在您的Rails应用程序中使用ratonvirus gem将clamav病毒扫描程序与您的Rails应用程序连接。 在rails中,您只需要添加
validates :file, antivirus: true
要扫描的模型。