V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zwillhill
V2EX  ›  问与答

Wordpress 绝对路径暴露怎么处理?数据库还经常吊链子

  •  
  •   zwillhill · 2017-07-07 21:43:29 +08:00 · 3483 次点击
    这是一个创建于 2694 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用工具扫了下别人的,输出如下:

    <html>
    <head><title>403 Forbidden</title></head>
    <body bgcolor="white">
    <center><h1>403 Forbidden</h1></center>
    <hr><center>nginx</center>
    </body>
    </html>
    <!-- a padding to disable MSIE and Chrome friendly error page -->
    <!-- a padding to disable MSIE and Chrome friendly error page -->
    <!-- a padding to disable MSIE and Chrome friendly error page -->
    <!-- a padding to disable MSIE and Chrome friendly error page -->
    <!-- a padding to disable MSIE and Chrome friendly error page -->
    <!-- a padding to disable MSIE and Chrome friendly error page -->
    
    已经检测完毕
    

    然后扫描了下自己的,就密密麻麻出来一堆。看上面的日志应该是通过 nginx 来设置? 网上搜了几个选项似乎没起作用

    主机环境:LNMP

    另外,主机用的 1g 内存 ecs (最低配),数据库动不动就失联,日志提示内存不足,装了 memcached,innodbbuffer 之前默认是 128,修改成 32 好了几天又不行了——没流量的新站,自己把自己玩挂啦。

    xshell 重启数据库还起不来,得重启服务器

    31 条回复    2017-07-09 16:12:29 +08:00
    UnisandK
        1
    UnisandK  
       2017-07-07 22:05:44 +08:00
    1G 内存你还用 memcached
    akira
        2
    akira  
       2017-07-07 22:27:06 +08:00
    之前在低配服务器上面装 wp 有遇到同样的情况,检查后发现是 wp 默认有个定时任务, 但是那个的 sql 写的超级烂, 要自己处理下才行。

    至于防止直接访问特定目录,那个在其他目录做下禁止访问就好了呀
    zwillhill
        3
    zwillhill  
    OP
       2017-07-07 22:27:46 +08:00
    @UnisandK 不懂啊,网上说能减缓数据库压力就装了
    zwillhill
        4
    zwillhill  
    OP
       2017-07-07 22:29:24 +08:00
    @akira 直接访问都是访问不到的。但是工具能扫出来。猜测得是用户分组啊、分配权限什么的
    DoraJDJ
        5
    DoraJDJ  
       2017-07-07 22:29:42 +08:00
    @zwillhill 内存不足的情况下用这种使用内存的缓存系统搞不好会造成负效果,最好了解服务器的实际情况再考虑用哪种缓存,甚至完全不用。
    zwillhill
        6
    zwillhill  
    OP
       2017-07-07 22:47:46 +08:00
    @DoraJDJ 就是跑 wordpress,修改主题或者插件时自己就挂了——主题也不是 the 7 那种复杂的。
    lun10439547
        7
    lun10439547  
       2017-07-07 22:48:01 +08:00 via iPhone
    网站静态化,利用反代,插件的效果差的要死!
    ivmm
        8
    ivmm  
       2017-07-07 23:29:58 +08:00
    AD 一波 WP 优化教程: https://www.mf8.biz/the-guide-for-wordpress-ubuntu/ 还请指正
    msg7086
        9
    msg7086  
       2017-07-07 23:50:33 +08:00
    innodb 环境下记得看自己有没有开 swap。
    zwillhill
        10
    zwillhill  
    OP
       2017-07-08 00:23:32 +08:00
    @msg7086 不知该开吗?之前试着弄了 1g swap,没配置好又删掉了
    msg7086
        11
    msg7086  
       2017-07-08 00:42:56 +08:00
    @zwillhill 要开的,否则进程的提交请求会不足,可能会被内核杀掉。
    snnn
        12
    snnn  
       2017-07-08 00:46:10 +08:00 via Android
    @msg7086 对啊,所以要先看为什么内存不足,哪里配错了
    而不是盲目靠 swap 解决问题
    falcon05
        13
    falcon05  
       2017-07-08 00:49:16 +08:00 via iPhone
    开个 w3tc 或者 wp supercache 插件,PHP 模式就够用,能极大减少数据库压力。
    msg7086
        14
    msg7086  
       2017-07-08 00:55:36 +08:00
    @snnn 内存不足并不一定是因为配错了。
    innodb 不吃内存而吃内存提交,这是一个广泛存在的问题,需要靠开 swap 增加内存提交总量解决。
    楼主说的日志里已经有内存不足的提示,并且服务起不来,很可能是内存提交炸裂,增加 swap 或者增加内存都是最直接的尝试方法,何来盲目一说。

    现代的软件就是会比以前的吃更多的内存,要不然我们就得全听比尔盖子的,用 640KB 内存去了。
    gdtv
        15
    gdtv  
       2017-07-08 01:23:03 +08:00
    用什么工具扫的?我也想扫下我自己的。
    zwillhill
        16
    zwillhill  
    OP
       2017-07-08 09:38:58 +08:00
    @falcon05 wp supercache 一直都有装,不过刚才检查了下提示页面不相符,装 memcached 之前都正常
    @msg7086 感谢热心回复!回头试试
    @gdtv 关键字就在标题上
    zwillhill
        17
    zwillhill  
    OP
       2017-07-08 09:57:04 +08:00
    @ivmm 网站速度不错,请问目录怎么设置?扫描器显示
    ```
    <html>
    <head><title>404 Not Found</title></head>
    <body bgcolor="white">
    <center><h1>404 Not Found</h1></center>
    <hr><center>nginx</center>
    </body>
    </html>
    <!-- a padding to disable MSIE and Chrome friendly error page -->
    <!-- a padding to disable MSIE and Chrome friendly error page -->
    <!-- a padding to disable MSIE and Chrome friendly error page -->
    <!-- a padding to disable MSIE and Chrome friendly error page -->
    <!-- a padding to disable MSIE and Chrome friendly error page -->
    <!-- a padding to disable MSIE and Chrome friendly error page -->
    ```
    ivmm
        18
    ivmm  
       2017-07-08 10:17:48 +08:00
    @zwillhill

    目录怎么设置,没 get 到意思
    snnn
        19
    snnn  
       2017-07-08 10:50:34 +08:00 via Android
    @msg7086 拿 swap 跑数据库你也是个人才
    zwillhill
        20
    zwillhill  
    OP
       2017-07-08 11:09:23 +08:00
    @ivmm 网站目录是不是需要设置不同用户什么的,我的网站扫描器扫出来就一堆路径,你这个和主贴里差不多。
    @snnn 说个有效建议呗
    ivmm
        21
    ivmm  
       2017-07-08 11:37:40 +08:00
    @zwillhill 是不是目录都可以查看到服务器的 / 目录? 如果是的话,你需要设置 PHP 的放跨站


    @snnn 这不是 LZ 只有 1G 内存么


    @zwillhill 提高内存是最好的方法,然后将内容能静态化的全部静态化,不能静态化的就缓存到内存,尽量不要有 SQL 查询,一般首页要做到 0 SQL 查询。 博客这种东西要优化,就是尽量不要有 SQL 查询
    snnn
        22
    snnn  
       2017-07-08 12:08:07 +08:00
    @zwillhill

    这是我的 mysql 配置:

    [mysql]
    default-character-set=utf8

    [mysqld]
    innodb_buffer_pool_size=256M
    max_allowed_packet=16M
    skip-name-resolve=true
    character-set-server=utf8

    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0

    # Recommended in standard MySQL setup
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

    [mysqld_safe]
    log-error=/var/log/mysql/err.log
    pid-file=/var/run/mysqld/mysqld.pid

    另外,减少最大并发连接数,减少每个 connection 的 buffer size,也能进一步控制内存消耗。

    你可以认为总的内存需求大约等于 innodb_buffer_pool_size + per_connection_buffer_size * max_connection_count

    千万别网上随便找个 conf 就贴过来,否则就等着内存爆掉吧。要精打细算。
    zwillhill
        23
    zwillhill  
    OP
       2017-07-08 12:59:50 +08:00
    @snnn nginx 和数据库基本都是默认的没动( nginx 复制粘贴运行起来了,数据库倒是啥也没设置)。昨天才装了个 mysqltuner,提示了一些参考数值。看来还是得先优化数据库自身设置。


    @ivmm 类似网页右键查看源代码,暴露了 wordpress 的目录结构(不是服务器)——虽然浏览器并不能访问这些目录。刚才网上查了下,nginx 可以限制 user-agent,http 方法行为,猜测你的应该是设置过的,所以扫描器返回 404,我的没设置,所以扫描器可以看到。看来 nginx 也得再加固下。
    另外你所说的静态化,昨天也查过,是不是用 wp 插件生成 html 文件?一个网站是企业展示类的并不会频繁更新,html 应该没影响,一个是博客类,首页直接是文章列表——这样的也可以 html 化吗——或者说需要 html 化吗?
    ivmm
        24
    ivmm  
       2017-07-08 17:38:05 +08:00
    @zwillhill

    我指静态化是,什么小工具这样的东西能不用就不用,尽量用 HTML 代码表示,不要走 PHP 有 SQL 查询

    然后将内容缓存到内存,而不是本地磁盘
    msg7086
        25
    msg7086  
       2017-07-09 06:07:06 +08:00
    @snnn 连内核的内存管理机制都不知道就敢嘲讽别人的你才是人才。
    snnn
        26
    snnn  
       2017-07-09 08:28:55 +08:00 via Android
    @msg7086 哈哈哈哈哈哈哈哈哈哈哈 我真是醉了
    小朋友,有空少打打游戏,多读读书。你说的那是 windows 的内存管理方式
    snnn
        27
    snnn  
       2017-07-09 08:30:48 +08:00 via Android
    @msg7086 你上网搜搜 committed memory,看哪条结果不是关于 windows 的。
    allenhu
        28
    allenhu  
       2017-07-09 09:24:12 +08:00 via Android
    目测是被 pingback 攻击了,查查吧
    zwillhill
        29
    zwillhill  
    OP
       2017-07-09 12:19:39 +08:00
    @allenhu 云盾显示没被攻击,不过还是把 pingback 关了。后台装了防护插件,看到 ban 掉不少试图通过不存在的用户名登录的 ip。
    msg7086
        30
    msg7086  
       2017-07-09 15:43:33 +08:00
    @snnn 是是是,我们计算机系研究生院太水,让您见笑了。
    请您 Block 我的账号,免得看到我们这种小朋友污了您的眼。我也会 Block 您的账号以表敬意。

    也千万别访问下面关于 Linux 内核 commit memory 的说明。
    https://www.kernel.org/doc/Documentation/vm/overcommit-accounting
    snnn
        31
    snnn  
       2017-07-09 16:12:29 +08:00
    @msg7086 一路走好。我都工作 10 年了,从 mysql 3.23 用到现在,犯不着跟你较劲。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4091 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:12 · PVG 18:12 · LAX 02:12 · JFK 05:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.