站点图标 江湖人士

WordPress媒体数据保存在哪张表?

WordPress媒体数据保存在哪张表?

WordPress媒体数据保存在哪张表?

WordPress媒体数据保存在哪张表?WordPress中把所有的图片,视频,间频等文件都叫媒体文件,因此你在编辑文章时上传的图片,视频等文件,都会保存在数据库中,那么它是保存在哪里的呢?

最近有一个闲置的网站基本上能访问就一直没有怎么管它,昨天发现数据库连接又报错了,Error establishing a database connection,这是经典的一个错误,很多新手基本上都会遇到。把数据库的问题解决了后,准备折腾下这个网站,随即安装RankMath这个SEO插件,到一步选择logo图片时,突然眼前一亮,发现图片描述里面有一段脚本,心想,坏了,网站被挂马了,这个网站一直没有管过,估计被挂了一两年都没有发现这个问题。

因为正常情况下,我们上传图片不会自己去加一段脚本,肯定是网站被黑后,别人拿到数据库权限,直接用SQL更新的,这样挂马效率杠杠的,之后在你网站上任何页面,只要用了这个图片,都会执行这个脚本;更狠的是,我看了数据库里面,所有的文章都被添加了这段脚本,也就是说,全站沦陷,这个脚本是干的什么勾当,我就懒得研究了;先把问题这个脚本干掉再说。

WordPress媒体数据保存在哪张表

有了上面的问题和需求,随即在宝塔面板里面开启phpMyAdmin工具连上数据库。这里给大家推荐一下宝塔面板,如果你是自己购买VPS(像搬瓦工vultr这类的国外VPS非常方便,不用备案,安装好宝塔面板就开干)来建站的话,可以使用宝塔面板建站,它集成了很多环境软件和工具,当然你也可以使用宝塔提供的付费插件和工具,毕竟人家公司开发这个需要资金支持,有了站长的支持他们才能走的更远,才能长期的为广大站长服务。

连上数据库之后,就需要找到WordPress 媒体数据保存的那张表,这里给大家说下,WordPress使用的是mysql数据库,WordPress中的媒体库(media)涉及两张表,熟悉基本的数据库命令就可以直接操作表。

  1. wp_postmeta
  2. wp_posts

查询媒体库

如果你在网上赚钱,建好了niche网站,会点sql就可以用下面的语句在phpMyAdmin工具里面执行,就可以看到所有的媒体文件了。

select * from wp_posts where post_type = 'attachment';

该查询会返回所有媒体库中的图片资源,其中,guid字段,代表图片的引用地址。
示例:使用phpmyadmin查询被挂马网站数据库媒体库字段信息,guid字段拖下水平滚动条,最右边可以看到。

当然,除此之外,如果想查询文章相关的附件图片、缩略图等媒体资源。这就需要到关联表wp_postmeta中查询:

 SELECT * FROM  `wp_postmeta` 
 WHERE meta_key IN (
   '_wp_attached_file', 
   '_wp_attachment_backup_sizes',  
   '_wp_attachment_metadata',  
   '_thumbnail_id'
 )

如上图,查询出文章相关的特色图片。这张表是posts和其他内容的关联表。需要关注的是post_id(关联文章ID)、meta_value(文章关联的媒体等ID,需要到wp_posts表中查询)。

查询被挂马内容

明白了怎样查询媒体内容,那么接下来就查询出哪些内容被挂木马了(js脚本),WordPress将所有的文章内容,页面内容,图片的描述也是保存在表【wp_posts】里面的,如果你为WordPress安装了安全插件,是可以修改表的前缀的,改了表前缀,则为对应的前缀加上posts即如,如上图中的【sl_postmeta】。

从第一张图我们可以看到,描述的脚本是以【<script】开头的,因此只需要编写SQL语句如下就可以查询出哪些内容被挂上了这个脚本。

SELECT * FROM sl_posts WHERE post_content LIKE '%<script%'  --这是按<script来查询
SELECT * FROM sl_posts WHERE post_content LIKE '%.js%'      --也可以执行这个按 .js来查询

以上2个脚本就可以就可以让你知道大概哪些数据被插入了外部脚本文件。这里需要提醒一下的是,每个站的情况不一样,有可能你网站文章里面有你自己添加的外部脚本文件,这时就需要注意下排除这种情况。

删除木马脚本

查询出内容之后,要做的就是把这些内容给替换掉就可以了。也需要编写一个sql语句如下:

UPDATE sl_posts set post_content = REPLACE(post_content,'木马脚本内容','')  --这里不带条件整表更新

经过这翻操作之后,还需要清理下网站目录里面的木马文章,最好的建议就是安装一个干净的WordPress,然后还原下数据库,再把媒体文件重新上传上去就可以了,如果自己清理木马文件需要你对WordPress非常的熟悉,这个就太有技术含量了,本文就不做介绍了。

写在最后

人在江湖漂,哪有不挨刀,对于自己建站的站长,要操好多的心,尤其是安全性问题,不注意这个问题,你辛苦一阵子都是为别人做嫁衣,都为别人引流了,钱也让别人赚走了。

对于喜欢做国外网赚的朋友,我一直建议先寻找一个好的平台,如Wealthy Affiliate,直接使用它家的主机建站,你不用担心任何问题,只需要用心经营好网站就成,安全,备份这些事情,平台给你做了,出了问题,人家很快,短则几分钟就给你处理了。

这是我在Wealthy Affiliate提交的问题,基本上很快就处理了。

退出移动版