gpt4 book ai didi

php - 需要清理垃圾邮件数据库

转载 作者:行者123 更新时间:2023-12-01 00:52:29 25 4
gpt4 key购买 nike

所以有几件事。首先,生病了,我似乎无法集中精力去解决这个问题,其次,这让我完全不知道如何处理这个问题。

所以我有一个客户有一个基于旧代码构建的旧站点。代码中存在一些允许注入(inject)和攻击的极端漏洞——这确实发生了。自从我进入这个项目以来,我已经大大收紧了事情并且没有真正遇到问题。但我刚刚发现了一些似乎是以前黑客攻击的挥之不去的问题。

所以在数据库中,他们有一个名为“副本”的字段,用于存储文章的内容。好吧,虽然不是最好的名字,但它就在那里。所以这就是问题所在。自黑客入侵以来,大约有 52k 行中包含“伟哥”一词。因此,当我仔细查看 View 源中的复制字段和代码时,这就是我的发现:

for the little kids in the neighborhood.<div style="display: none;">

基本上打开和关闭的 div 标签具有如上所示的样式集。所以它不会在页面上直观呈现,但是当您查看源代码或...“搜索引擎蜘蛛”出现时,他们会看到它。我一直想不通为什么上传到 article_image 目录中的 .php 文件在网站管理员工具中被编入索引 - 直到今晚。现在我知道为什么了。

这就是我需要的。因为数据库中的每一行(其中 52k)都有作为示例给出的内容(<div style...>)部分,并且它们都出现在最初存在的内容之后,所以我需要一些可以添加到循环中的东西来清理复制字段中的废话,以便清理困惑。我可以采用 str_replace 方法 - 但那太长了而且不能保证我会得到所有的东西。

那么 - 有什么建议吗?

最佳答案

试试这个:(假设“content”是包含文章内容的列的名称)

UPDATE `copy` SET `content`=
SUBSTR(`content` FROM 1 FOR LOCATE('<div style="display: none;">',`content`))
WHERE `content` LIKE '%<div style="display: none;">%';

既然您已经指出这些注入(inject)总是文章中的最后一件事,那么这将很好地消除它们。不过,我强烈建议先备份一份!

关于php - 需要清理垃圾邮件数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14270824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com