본문 바로가기
반응형

정규식3

exec()에서 사용자 입력(악성코드) 동작 방지방 exec()에서 사용자 입력(악성코드) 동작 방지방법exec()는 문자열로 작성된 파이썬 코드 블록을 실행하는 매우 강력한 함수입니다. 그러나 외부 입력을 검증 없이 exec()로 처리하면 악의적인 코드를 실행할 수 있는 위험이 있습니다. 특히, import os; os.system('rm -rf /')와 같은 명령어가 실행되면 시스템에 심각한 피해를 줄 수 있습니다. 따라서 exec()를 사용할 때는 반드시 안전한 방법으로 사용자 입력을 처리해야 합니다.  1. 보안 문제 이해exec() 함수는 문자열로 전달된 모든 파이썬 구문을 실행할 수 있습니다. 예를 들어, 사용자로부터 입력받은 문자열이 다음과 같은 악의적인 코드를 포함할 수 있습니다. 예시에서 exec() 함수는 사용자 입력을 그대로 실행하고,.. 2024. 9. 9.
eval() 에서 악의적인 코드 실행 방지하기 : 보안 위험 방지 eval() 에서 악의적인 코드 실행 방지하기 : 보안 위험 방지eval() 함수는 문자열로 표현된 파이썬 표현식을 실행하고 그 결과를 반환하는 강력한 함수이지만, 잘못 사용하면 심각한 보안 문제를 일으킬 수 있습니다. 특히 외부로부터 입력받은 데이터를 검증 없이 eval()에 전달하면 악의적인 코드가 실행될 수 있습니다. 이러한 보안 위험을 방어하기 위해 여러 가지 방법을 사용할 수 있습니다. 이번 포스팅에서는 eval()을 안전하게 사용하는 방법에 대해서 정리합니다.1. 보안 위험 이해하기먼저, eval() 함수의 보안 위험을 이해하는 것이 중요합니다. 코드에서 user_input에 악의적인 코드가 포함되어 있으며, 이를 eval()로 실행하면 시스템 전체를 삭제하는 명령어가 실행될 수 있습니다. 이.. 2024. 9. 5.
[파이썬] 다양한 빈칸, 공백을 모두 제거하는 코드 다양한 빈칸, 공백을 모두 제거하는 코드여러 문자열을 취합할 때, 다양한 칸수로 생성된 공백들을 제거하는 코드입니다. 기본 1칸부터 반복되는 여러칸까지 지우는 방법을 정리했습니다. 개인적으로 진행한 과정은 다음과 같았습니다. 1차로 1칸짜리 공백을 제거하는 코드를 넣었습니다.그런데 사용해보니, 더 많은 공백이 있는 부분에 대한 처리가 부족해서 문자열에 여전히 공백이 있었습니다. 그래서 반복적으로 빈칸을 검색해서 삭제하는 것을 고민했는데, 처음에는 FOR를 생각했는데, 이것보다 더 효과적인 re 패키지를 사용해서 문제를 해결했습니다.아까 띄어져있던 문자열이 정리된 것을 확인할 수 있었습니다. 문제해결 완료.문자열 공백제거 참고 코드1. str.replace() 메소드를 사용하여 모든 공백 제거# 예시 문자.. 2024. 2. 14.
반응형