后端开发保障应用安全需要至少做到哪些事情?

查看原文

后端安全的几个关键词: Injection(注入), XSS(跨站), CORS(跨域)

  • Injection: 写 SQL 的时候不要自己格式化 query,而应该交给标准库来做,一般 exec("select * from table where field=%s", field) 这种写法是足够安全的;exec("select * from table where fields=%s" % field) 是要命的。想想 field 的值等于 1; delete from table 可怎么办!
  • XSS: 不信任任何用户的输入,用户的输入在渲染 Template 的时候,记得 escape 一下。不少模板库都提供了自动 escape 的功能,挑选的时候记得查看一下这种选项。
  • XSS: 不信任任何用户的输入,如果真的打算渲染用户提交的 HTML 到页面上,那么 Sanitization 就是必须的。简单说来,找个库(例如 bleach) 杀杀菌,把 script 之类的标签都杀掉。
  • CORS: 表单里面用上 CSRF Token。一般来说,Form 相关的库也会带上自动渲染 csrf token 的选项,挑选的时候记得查看一下。

后端应用的安全其实已经被研究的比较透了,这四种已经覆盖了大部分的攻击了。