사이트가 해킹당하는 문제가 자주 발생합니다. 일반적으로 그들은 다른 파일에 삽입된 스크립트로 끝납니다. Linux에서 이 콘텐츠를 검색하고 자동으로 삭제하는 방법이 있습니까? 보통 이런 내용으로 시작해서 이런 식으로 끝납니다.
<!--2d3965--><script type="text/javascript" language="javascript">
</script><!--/2d3965-->
일종의 grep 조합을 사용하여 이 콘텐츠가 포함된 파일을 검색한 다음 sed로 파이프하여 모든 것을 삭제할 수 있습니까
?
답변1
나는 그러한 스크립트를 작성했는데 유용할 수 있습니다.
#!/usr/bin/env python
import os
import sys
for infile in sys.argv[1:]:
print infile
filetmp=infile+'.tmp'
BEGIN='<!--2d3965-->'
END='<!--/2d3965-->'
f = open(infile, 'r')
ftmp = open(filetmp, 'w')
skip=False
for line in f:
if BEGIN in line:
#print line.partition(BEGIN)[0]
ftmp.write(line.partition(BEGIN)[0])
skip=True
if END in line:
#print line.partition(END)[2]
ftmp.write(line.partition(END)[2])
skip=False
else:
if not skip:
ftmp.write(line)
#you can add save restrictions here
os.rename(filetmp, infile)
당신은 다음을 제공해야합니다 :
- 바이러스가 있는 파일 이름
- 표시하는 문자열바이러스 시작끈
표시하는 문자열바이러스 끝
파일에 필요한 경우 권한을 다시 변경하는 것을 잊지 마세요. 그런데 제 생각엔 텍스트 파일에만 적용할 수 있는 것 같아요.
테스트해 보시고, 사용하시기 전에 백업해 주시기 바랍니다.
다음과 같은 방법으로 사용하세요:
python cleaner.py index.html js/jquery.js
답변2
나는 이 파일을 Subversion이나 git에 추가하고 정기적으로 이 파일의 공식 버전을 사이트의 파일과 자동으로 비교합니다. 차이점이 발견되면 해킹을 당했다는 사실을 알고 유출을 검색할 수 있습니다. 그 사이에 버전 관리 도구에서 원본 파일을 복원할 수 있습니다.