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

有没有开源的那种因噎废食的防止 SQL 注入、XSS 的 PHP 代码?

  •  
  •   bugmenein · 2016-10-14 20:38:54 +08:00 · 5247 次点击
    这是一个创建于 2741 天前的主题,其中的信息可能已经有所发展或是发生改变。

    类似百度云加速和 360 网站卫士的防止 SQL 注入、 XSS

    CloudFlare 免费版完全不管

    不因噎废食会死星人

    第 1 条附言  ·  2016-10-15 12:58:21 +08:00
    完全过滤掉提交 SQL 语句和 HTML 和 JavaScript 代码,不考虑误杀
    37 条回复    2016-10-17 15:39:58 +08:00
    qiayue
        1
    qiayue  
       2016-10-14 20:48:12 +08:00 via Android
    我 90%确定你搞错因噎废食这个成语的含义
    cnsean
        2
    cnsean  
       2016-10-14 20:56:44 +08:00
    自己写个 github 有开源可以参考
    就问你怕不怕
    xgfan
        3
    xgfan  
       2016-10-14 20:59:32 +08:00 via Android   ❤️ 16
    我教你怎么因噎废食。
    不用数据库就好了。
    bdbai
        4
    bdbai  
       2016-10-14 21:03:52 +08:00 via Android
    找个 ORM 基本可以防止 SQL 注入。
    XSS 嘛 输出用 htmlentities 包一下就行 前端用 textContent 赋值。
    SilentDepth
        5
    SilentDepth  
       2016-10-14 21:14:06 +08:00
    @xgfan 这是「因噎废食」的正确理解
    Srar
        6
    Srar  
       2016-10-14 21:20:14 +08:00   ❤️ 1
    DiamondbacK
        7
    DiamondbacK  
       2016-10-14 21:43:21 +08:00
    神他妈因噎废食。 3L 真相。
    bombless
        8
    bombless  
       2016-10-14 21:50:24 +08:00 via Android
    日度撕逼大戏, 233
    DesignerSkyline
        9
    DesignerSkyline  
       2016-10-14 21:50:32 +08:00
    @xgfan 23333333333333
    billlee
        10
    billlee  
       2016-10-14 21:51:37 +08:00
    用「因噎废食」形容 WAF 确实也没错啊
    gouchaoer
        11
    gouchaoer  
       2016-10-14 23:13:00 +08:00 via Android
    鸟哥的 taint ,检测没有处理过的用户变量
    htmlpurifier ,速度感人
    实在不放心你就把源码放 docker 里面跑
    还不放心,那就 beast 加个密吧
    最终极的办法,入口文件弄个中间件检查 get/post 里的 sql 注入 /xss/异常数据,然后把数据记录下来方便之后分析,然后把用户 ip 放到 redis 里,另外有个 php-cli 盯着 redis 把黑客 ip 加入 iptables 来 ban 几个小时
    gouchaoer
        12
    gouchaoer  
       2016-10-14 23:14:41 +08:00 via Android
    不要虚,就是干
    izoabr
        13
    izoabr  
       2016-10-14 23:20:04 +08:00
    还有个老的 WebSecurity
    shlabc
        14
    shlabc  
       2016-10-14 23:25:42 +08:00
    Senorsen
        15
    Senorsen  
       2016-10-15 01:14:36 +08:00 via Android   ❤️ 1
    想了很久, lz 的因噎废食到底是什么意思
    ck65
        16
    ck65  
       2016-10-15 03:08:17 +08:00
    @Senorsen 可能是废寝忘食。
    lslqtz
        17
    lslqtz  
       2016-10-15 08:12:32 +08:00
    我用 txt 文本保存数据,这叫因噎废食。
    skydiver
        18
    skydiver  
       2016-10-15 09:24:11 +08:00 via Android   ❤️ 2
    @Senorsen 是想说一劳永逸吧
    khjian
        19
    khjian  
       2016-10-15 09:47:25 +08:00
    这个因噎废食到底啥意思?
    dark456852
        20
    dark456852  
       2016-10-15 10:59:19 +08:00
    MARK,看看大神们推荐
    gamexg
        21
    gamexg  
       2016-10-15 11:05:12 +08:00   ❤️ 2
    我一直觉得纳闷,这种东西能用?
    技术站要是用户提交个带 sql 语句的文章是不是就给封了,或者文章里面的半角分号全部变成全角分号,弄得拷贝的代码全部挂掉?

    这个只能记录异常的行为后人工分析吧?
    Technetiumer
        22
    Technetiumer  
       2016-10-15 11:08:27 +08:00 via Android   ❤️ 1
    @gamexg 我猜这就是因噎废食
    qiayue
        23
    qiayue  
       2016-10-15 12:00:52 +08:00
    @skydiver 我觉得你猜对了,只有一劳永逸放上去读的通
    bugmenein
        24
    bugmenein  
    OP
       2016-10-15 12:16:37 +08:00
    @gamexg
    @Technetiumer

    对对对,因为百度云加速和 360 网站卫士就是这样。
    Vhc
        25
    Vhc  
       2016-10-15 12:42:35 +08:00
    @bugmenein 「因噎废食」就是在服务器上卸载数据库,然而 你又是如何理解这个成语的呢?
    bugmenein
        26
    bugmenein  
    OP
       2016-10-15 12:56:06 +08:00
    @Vhc 完全禁止提交 SQL 语句和 HTML 和 JavaScript 代码,不考虑误杀
    sutra
        27
    sutra  
       2016-10-15 13:36:26 +08:00
    因噎废食的方案有很多,比如卸载 PHP 。
    orvice
        28
    orvice  
       2016-10-15 14:29:35 +08:00
    程序上应该做的事情为什么要靠 cdn 。。。
    shinwood
        29
    shinwood  
       2016-10-15 14:33:52 +08:00 via iPhone
    终极解决方案难道不是过滤掉所有半角符号以及 26 个半角英文字母,只允许中文字符就好了。
    bugmenein
        30
    bugmenein  
    OP
       2016-10-15 14:59:15 +08:00
    @orvice 所以来发帖了,
    有没有开源的那种因噎废食的防止 SQL 注入、 XSS 的 ** PHP 代码 **?
    只是想找个厉害的正则什么的。。。完全不考虑误杀,最好是 @gamexg 所说的那样。。。
    gamexg
        31
    gamexg  
       2016-10-15 15:04:20 +08:00
    @shinwood 好主意,还可以将半角符号及英文字母全部替换成全角符号。
    gearh
        32
    gearh  
       2016-10-15 15:13:14 +08:00
    reus
        33
    reus  
       2016-10-15 17:33:13 +08:00
    今时今日 PHP 开发者还要操心 SQL 注入的问题?
    我 10 年前写 PHP 就知道要用 prepare statement 了。
    hicdn
        34
    hicdn  
       2016-10-15 18:44:58 +08:00
    why1
        35
    why1  
       2016-10-15 19:12:15 +08:00
    因噎废食(select)
    Koishi
        36
    Koishi  
       2016-10-15 19:33:17 +08:00
    因噎废食...
    我认为以下建议比较符合题意
    不用数据库
    orvice
        37
    orvice  
       2016-10-17 15:39:58 +08:00
    @bugmenein 没有用的 用正则还是会被注入, pdo 参数绑定是解决方法。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3303 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 12:46 · PVG 20:46 · LAX 05:46 · JFK 08:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.