Python/Python for Windows

[Python] 디렉토리(하위포함) 파일명 점검 하기

Pydole 2018. 7. 9. 01:53

웹 서버를 운영하다 보면 웹 소스, 동영상 등 파일명을 고려해야 하는데, 시스템 명령어나 SQL쿼리문, 특문과 같은 파일명

 

들어가 있는 파일명은 보안장비에서 오탐으로 필터가 될 수 있다. 

 

파이썬으로 특정폴더 이하에 있는 파일을 간단하게 점검할 수 있다.

 

 

파일명에 SQL 쿼리 명령어가 포함된 파일명 체크

 

sysCmd = {'select':'slct', 'update':'updt','insert':'inst'} 

for (path, dir, files) in os.walk(r'D:\test4'): 
    for filename in files: 
        for i in sysCmd: 
            if i in filename: 
                print('%s 파일에 %s 가 포함되어 있습니다. %s 로 변경을 권장드립니다.' %(filename,i,sysCmd[i]))

--------------------------------------------------------------------------------------------

file_insert33.txt 파일에 insert 가 포함되어 있습니다. inst 로 변경을 권장드립니다.
file_select11.txt 파일에 select 가 포함되어 있습니다. slct 로 변경을 권장드립니다.
test_update22.txt 파일에 update 가 포함되어 있습니다. updt 로 변경을 권장드립니다.

 

 

파일명에 시스템 명령어가 포함된 파일명 체크

 

sysCmd = {'select':'slct', 'update':'updt','insert':'inst'} 

for (path, dir, files) in os.walk(r'D:\test4'): 
    for filename in files: 
        for i in sysCmd: 
            if i in filename: 
                print('%s 파일에 %s 가 포함되어 있습니다. %s 로 변경을 권장드립니다.' %(filename,i,sysCmd[i]))

--------------------------------------------------------------------------------------------

file_insert33.txt 파일에 insert 가 포함되어 있습니다. inst 로 변경을 권장드립니다.
file_select11.txt 파일에 select 가 포함되어 있습니다. slct 로 변경을 권장드립니다.
test_update22.txt 파일에 update 가 포함되어 있습니다. updt 로 변경을 권장드립니다.

 

 

파일명에 공백 체크

 

for (path, dir, files) in os.walk(r'D:\test4'): 
    for filename in files: 
        if ' ' in filename: 
            print('%s 파일에 공백이 포함되어 있습니다. "_" 로 변경을 권장드립니다.' %(filename))

-------------------------------------------------------------------------

file space.txt 파일에 공백이 포함되어 있습니다. "_" 로 변경을 권장드립니다.

 

 

 

 파일명에 한글포함 여부 확인

 

for (path, dir, files) in os.walk(r'D:\test4'): 
    for filename in files: 
        try: 
            if filename.encode('ascii'): 
                pass 
        except UnicodeEncodeError: 
            print('%s 에 영문이나 숫자가 아닌 문자가 포함되어 있습니다.' %filename)

-----------------------------------------------------------------------

test_한글222.txt 에 영문이나 숫자가 아닌 문자가 포함되어 있습니다.
한글abc.txt 에 영문이나 숫자가 아닌 문자가 포함되어 있습니다.