Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在使用Ruby的system方法。
system
system("/bin/wget", "-pk", "-nd", "-P", "/public/download", "#{URL}")
whereURL由用户填写。
URL
我应该在服务器上执行哪些检查URL以确保用户没有做恶意的事情?
我的理解是,按照你所说的方式,你不必担心有人传入 say ; rm -rf *。但是,如果 wget 对 URL 做了任何特殊处理,您可能会这样做。例如,curl 允许您在 URL 本身中执行一些正则表达式/范围/通配符的内容。
; rm -rf *
您可以考虑通过URI.parse和 catch运行 URL URI::InvalidURIError。
URI.parse
URI::InvalidURIError