才从 php 转过来,有几个关于安全的小问题问问: 1.rails 自动 add_slash 吗?还是有 rails 函数可以调用呢? 2.rails 有转义 html 的函数吗?防止 xss 3.开放问题,常用的 rails 安全实践(最好是你写过的,谢谢分享!)。
第二问题,生成 form 表单的时候会有一个 auth_token 生成
#1 楼 @tumayun 这个和 xss 还不大一样哟。比如我在 input text 里面写 <script>alert</script>,需要被转义成<script>...
<script>alert</script>
#2 楼 @itsvoid 我写的是&-l-t;
rails3 默认转义. 想不转义的话调用 raw() 或 .html_safe().
raw()
.html_safe()
关于安全 http://guides.rubyonrails.org/security.html http://railscasts.com/episodes/178-seven-security-tips
@itsvoid xss 不是跨站点攻击么?
#6 楼 @tumayun xss 和 csrf 不是同一个东东吧
@itsvoid 呃 想岔了
#4 楼 @raven 也就是说 rails 默认就开启了 add_slash?或者有其他机制来保证避免 sql injection?也默认转义了危险 tag,比如<script>,是么??
#9 楼 ruby-china 的评论回复好像是比较粗暴地删除危险 tag,而不是转义显示么?
#10 楼 @itsvoid 默认标签貌似都会转义。 用 activerecord 或其他一些 orm 的话基本不会被注入(只要不是故意的。。) 是因为有些 tag 还是要显示的吧(a 标签什么的 markdown 格式的一些..)
#11 楼 @jjym 你试试 script 标签,后台并没有转义而是不显示