V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hellohacker
V2EX  ›  程序员

PHP 如果不对 POST 或者 GET 请求做过滤处理就会被注入吗?

  •  
  •   hellohacker · 2014-03-26 10:58:12 +08:00 · 5732 次点击
    这是一个创建于 3674 天前的主题,其中的信息可能已经有所发展或是发生改变。
    看到很多被注入的例子 都是因为未对POST或者GET做判断处理,难到PHP不对POST或者GET请求做过滤处理就会被注入吗?
    17 条回复    1970-01-01 08:00:00 +08:00
    wdkwdkwdk
        1
    wdkwdkwdk  
       2014-03-26 10:59:40 +08:00 via Android
    不一定啊,要看你有没有用来对数据库做操作
    justfindu
        2
    justfindu  
       2014-03-26 11:12:26 +08:00
    不管什么语言都会这样吧~ 不做过滤~ 然后操作数据库~ 然后就没有然后了~
    fsw90628
        3
    fsw90628  
       2014-03-26 11:13:33 +08:00
    用 Prepared Statements 应该可以解决类似问题了。

    http://php.net/manual/en/pdo.prepared-statements.php

    p.s. 好久不看,PHP 的官方文档界面更新了。
    bearcat001
        4
    bearcat001  
       2014-03-26 11:47:09 +08:00   ❤️ 1
    有句话叫:永远不要相信用户

    所以对于所有可以输入或者修改的数据,一定进行严格过滤和判断。越早处理,可控性越高。
    scusjs
        5
    scusjs  
       2014-03-26 11:48:32 +08:00
    最好都过滤一下,养成好的习惯
    slixurd
        6
    slixurd  
       2014-03-26 12:28:10 +08:00
    参数绑定也是大部分数据库API都提供的.
    在多次查询同一语句下效率高而且不会被SQL注入
    但是如果查询次数少的话,参数绑定写起来麻烦而且没什么性能提升
    Mutoo
        7
    Mutoo  
       2014-03-26 12:40:10 +08:00
    不只是 POST 和 GET,request header 里面的任何一部分都有可能。只要你引用了来自用户的数据,都要小心,像 Cookies 就经常被忽视。
    wvidc
        8
    wvidc  
       2014-03-26 15:28:13 +08:00
    这是一个很值得深究的问题
    sneezry
        9
    sneezry  
       2014-03-26 15:41:06 +08:00
    有用User-Agent注入的例子呢。
    davansy
        10
    davansy  
       2014-03-26 16:22:25 +08:00   ❤️ 1
    不要相信任何用户输入的数据!
    whuhacker
        11
    whuhacker  
       2014-03-26 18:28:26 +08:00
    使用一个框架,让框架帮你做这些事情
    tywtyw2002
        12
    tywtyw2002  
       2014-03-26 18:39:11 +08:00 via iPhone
    如ajax调用。js做过一遍过滤,服务器还要去做一遍
    sb
        13
    sb  
       2014-03-26 18:55:58 +08:00
    大二时老师说了一个词叫 数据清洗。
    进来的所有数据都要清洗一下,不然会被恶意构造语句获取你的用户数据。
    wwek
        14
    wwek  
       2014-03-26 19:11:26 +08:00
    强烈建议 php操作数据库用 PDO
    wwek
        15
    wwek  
       2014-03-26 19:12:47 +08:00
    @Mutoo
    @sneezry
    @davansy
    @whuhacker
    @tywtyw2002
    @sb
    说的都非常对的!

    不要相信客户端来的任何数据。
    http 里面的 cookie user-agent post get 等。所有是客服端来的东西。都要过滤
    liuser
        16
    liuser  
       2014-03-27 01:42:44 +08:00
    PDO 参数绑定就不错。
    hiddenman
        17
    hiddenman  
       2014-03-27 11:22:51 +08:00
    不管是POST,还是GET,都可以构造。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5546 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 07:57 · PVG 15:57 · LAX 00:57 · JFK 03:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.