只需清理您的数据库条目,您就可以了。Rails 现在默认情况下会这样做。你只需要正确使用框架。查看更多信息:http ://wiki.rubyonrails.org/howtos/security/sql_injection
做这个:
Project.find(:all, :conditions => ["name = ?", params[:name]])
# or
Project.find(:all, :conditions => {:name => params[:name]})
不是这个:
Project.find(:all, :conditions => "name = '#{params[:name]}'")
您还必须通过以下方式防止 XSS 攻击
<%=h possible_harmful_text %>
以供参考:
跨站脚本 (XSS) 是一种通常在 Web 应用程序中发现的计算机安全漏洞,它允许恶意 Web 用户将代码注入到其他用户查看的网页中。此类代码的示例包括客户端脚本。攻击者可以利用被利用的跨站脚本漏洞绕过同源策略等访问控制。此类漏洞已被用来制造强大的网络钓鱼攻击和浏览器漏洞。截至 2007 年,在网站上执行的跨站点脚本大约占所有记录的安全漏洞的 80%。通常在攻击期间,对于可能遭受未经授权访问、敏感数据盗窃和财务损失的最终用户来说,“一切看起来都很好”损失。(通过维基百科)
而且当然
SQL 注入是一种代码注入技术,它利用应用程序数据库层中出现的安全漏洞。当用户输入被错误地过滤为嵌入在 SQL 语句中的字符串文字转义字符或用户输入不是强类型并因此意外执行时,就会出现此漏洞。它是一类更普遍的漏洞的一个实例,只要将一种编程或脚本语言嵌入到另一种中,就会发生这种漏洞。SQL 注入攻击也称为 SQL 插入攻击。1
(通过维基百科)