Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

如何防止注入?包括SQL注入,变量注入,XSS注入,系统命令注入等 - twin, skccc #8

Open
mingyun opened this issue Aug 26, 2014 · 0 comments

Comments

@mingyun
Copy link
Contributor

mingyun commented Aug 26, 2014

  1. Sql注入用pdo prepare可以杜绝 -- 光阴的故事
  2. 嗯,pdo bindparam -- 零度西瓜
  3. csrf :所有外站跳转统一走独立域名,然后用js 跳转,大多数浏览器302会透传refer(除非http->https ,这种情况不会传refer )。上行接口refer 限制时不仅要限制域名, 要求高的话还要限制整个url 以及post -- hilojack
  4. 防sql注入:使用mysql预处理语句(pdo有提供方法)
    变量注入:不要从来自外部的数据导入变量
    xss注入:输入时过滤验证,输出时转义
    系统命令注入:禁用相应的提供系统操作的函数 -- 杨锡坤
  5. sql注入-检查变量的类型和格式,比如uid就只能是int,正则检查格式,2-过滤特殊符号,3-绑定变量,用mysqli -- 星星
  6. HTTP only cookie 能防止后台认证窃取 -- 吴子棋
  7. 问: 为什么要过滤输入的值呢?比如什么情况就要过滤呢?

答: HTML 怎么也得过滤,PHP中叫消毒 -- 吴子棋

答: 过滤输入的比过滤输出的容易处理些把。主要是防xss洞 -- skccc

答: 过虑输入要比在输出时处理的点要少,但逻辑要复杂很多,存在不少逃过检测的方法 -- 水浸街

  1. 80sec 有一篇php 高级审核,不过有些点有点过时了,php 已经干掉了有些不安全的选项,像magic quotes, register global -- hilojack
  2. 其实还要注意使用' ".万一被人使用<--注释你代码 -- Anonymous、z
  3. 没有拼接就没有注入,SQL使用绑定变量,不使用过严格控制使用eval,构造html页面的变量必须经过编码。这种事情一再强调也会有人违反规范,特别是新员工。 -- 水浸街
  4. 问: review的时候能发现吧?

答: 人工review的成本挺高的,一般只是抽查 -- 水浸街

  1. 常见做法防注入使用pdo的预处理,避免XSS使用过滤特殊字符串 -- adam
  2. Nginx lua 的waf框架可以搞定绝大部分 — 崔玉松
    答:没啥业务或者业务简单几百年不变的写几个nginx lua脚本处理确实靠谱,性能又好 — 合一
  3. 对于今天的话题,先从开发管理入手,制定代码开发规范,对代码的审计。— Hank
    答:php代码规范可以直接用PSR规范 — skc
    答:SVN的钩子有设定,不满足格式的代码,无法提交 -- 夜丶有雪
    答:git下的hook也可以 — Hank
  4. 注入的产生根源于程序代码与数据指令的混淆以及一个信任问题,分离程序代码与数据指令之间的耦合性以及对用户操作的信任与否是防止注入的最关键问题。 — ____誓誩大少爺
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant