전체 글

42

[백준알고리즘/python3,파이썬] 1157번 단어 공부 문제 및 해결 소스코드

백준알고리즘 / No.1157 / 단어공부 / python3, 파이썬 문제 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. 입력 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다. 출력 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다. 해결 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 import collections test = input().upper() appy_list = [] count = collectio..

백준알고리즘 2020.12.18 임통끼

[백준알고리즘/python3,파이썬] 1152번 단어의 개수 문제 및 해결 소스코드

백준알고리즘 / No.1152 / 단어의 개수 / python3, 파이썬 문제 영어 대소문자와 띄어쓰기만으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다. 출력 첫째 줄에 단어의 개수를 출력한다. 해결 코드 1 2 data = input().split() print(len(data)) cs 결과 코드가 너무나도 짧아서 당연히 시간이 짧..

백준알고리즘 2020.12.18 임통끼

[백준알고리즘/C++14] 1008번 A/B 문제 및 해결 소스코드

백준알고리즘 / No.1008 / A/B / C++14 문제 두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 첫째 줄에 A/B를 출력한다. 실제 정답과 출력값의 절대오차 또는 상대오차가 10-9 이하이면 정답이다. 해결 코드 1 2 3 4 5 6 7 #include int main () { int i, j; scanf("%d %d",&i,&j); printf("%0.9f",(double)i/j); } Colored by Color Scripter cs 결과 이번에는 나누기인데, 이건 우여곡절이 좀 많았네 보니깐... 정신을 빼놓고 코딩한게 분명하다 ! (우여곡절의 흔적)

백준알고리즘 2020.12.18 임통끼

[백준알고리즘/C99,C언어] 1001번 A-B 문제 및 해결 소스코드

백준알고리즘 / No.1001 / A-B / C99, C언어 문제 두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0

백준알고리즘 2020.12.18 임통끼

[백준알고리즘/C99] 1000번 A+B 문제 및 해결 소스코드

백준알고리즘 / No.1000 / A+B / C99 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 첫째 줄에 A+B를 출력한다. 해결 코드 1 2 3 4 5 6 7 #include int main(){ int i,j; scanf("%d %d",&i,&j); printf("%d",i+j); } cs 결과 무려 2년전에 작성했던 코드이다. 아마 이때는 C언어가 가장 자신이 있었나보다..! C는 확실히 처리속도가 빠른 것 같다. 요즘 파이썬을 주로 코딩하면서 더더욱 느끼는거지만.. 파이썬 너무 느려 ㅠ0ㅠ

백준알고리즘 2020.12.18 임통끼

[Windows/pymysql] Python(파이썬)으로 Mysql/Maria DB 연동하는 방법

안녕하세요 ! Windosws 환경에서 Python3에 Mysql 및 Maria DB를 연동하는 방법을 알려드리겠습니다. Mysql을 연동할 수 있는 모듈은 여러가지가 있는데요 그중에서 저는 pymysql 모듈을 사용해서 연동을 해보려고 합니다! 1. pymysql 모듈 설치 : 모듈을 설치하는 방법은 크게 세가지로 나뉩니다. - easy_install 사용하기 - pip 사용하여 설치하기 - 직접 모듈을 다운받아 설치하기 이 3가지 방법 중에서 pip를 사용하여 설치하는 방법을 알려드리겠습니다! - pip 설치하기 pip install pymysql 콘솔창에서 해당 명령어를 실행해주면 간단하게 해당 모듈의 가장 최신버전이 설치가 됩니다. 이미 해당 모듈이 설치..

개발/Python3 2020.12.17 2 임통끼

Part 10 : OWASP 2017 TOP 10 RC2 A10 - 불충분한 로깅 및 모니터링

A10 : 불충분한 로깅 및 모니터링 * 정의 말그대로 충분하지 못한 로깅과 모니터링을 했을 경우 발생하는 문제점을 말하는 것이다. 로깅과 모니터링이 충분하지 않으면 발생한 에러에 대해 제때 대응을 하지 못할 뿐더러, 공격자에 의해서 해당 부분이 시스템 공격으로 이어지거나 데이터 변조와 추출, 심지어는 삭제 및 파괴가 될 수 있는 취약점을 일컫는다. * 대응방법 : 대응방법이라고 하기에는 그냥 모니터링을 상시 시행하고, 로그 파일이 많이 차지않다고 로그를 쌓지 않는 행위는 금지해야한다. 실제로 회사에서 근무를 하다보니, 로그를 쌓지않았을때 발생되는 문제점은 상당했다. 주로 고객사에서 모니터링에 대한 피드백을 요청하는 경우들이 많았고, 로그가 없는 경우에는 접속시간 조차 확인할 수 없는 등의 말도 안되는 ..

개발/OWASP 2017 2020.12.17 임통끼

Part 9 : OWASP 2017 TOP 10 RC2 A9 - 알려진 취약점이 있는 컴포넌트 사용[Using Components with Known Vulnerabilities]

A9 : 알려진 취약점이 있는 컴포넌트 사용[Using Components with Known Vulnerabilities] * 정의 간단히 말하자면 취약점이 발견된 이전 버전을 계속 사용하고 있는 것으로 "최신 버전 업데이트 미흡" 이라고 말할 수 있습니다. 일부 프로그램의 경우 자체적으로 업데이트를 권고하고 또한 업데이트를 하는 것이 쉽지만, 현재 운영중인 대형 서버와 같이 실시간으로 업데이트를 하기 어려운 경우에 자주 발생하기 쉬운 취약점입니다. - 영향 취약점이 있는 컴포넌트를 사용하면 인젝션, 접근통제 우회, XSS 등을 포함한 모든 종류의 취약점들이 가능해집니다. 공격자가 시스템을 완전하게 장악하고 정보를 탈취할 수 있을 정도까지도 가능합니다. * 대응방법 1. 본인이 만들지 않는 컴포넌트를 ..

개발/OWASP 2017 2020.12.17 임통끼

Part 8 : OWASP 2017 TOP 10 RC2 A8 - 크로스사이트 요청변조[CSRF]

A8 : 크로스사이트 요청변조[CSRF] * 정의 CSRF 공격은 로그인 된 공격 대상자의 브라우저가 공격 대상자의 세션 쿠키와 자동으로 포함된 인증 정보를 포함하여 위조된 HTTP 요청을 취약한 웹 애플리케이션에 보내도록 하는 것이다. 예를 들어, 공격자는 공격 대상자의 브라우저가 취약한 애플리케이션이 합법적이라고 생각하는 요청을 생성하도록 한다. Ex) html로 form을 작성하고 직접 실행하게 만들거나 onload속성을 통해 자동실행되게 하여 접속자로 하여금 원격으로 페이지 요청을 시키는 방법 그밖에도 방법도 있음. 즉, 페이지를 요청한다는 개념만 빼면 XSS와 기본적으로 유사한 공격이라고 할 수 있다. 즉, httpOnly옵션으로 인해 쿠키복사가 불가능 하다면 피해대상에게 원격으로 요청을 시켜 ..

개발/OWASP 2017 2020.12.17 임통끼

Part 7 : OWASP 2017 TOP 10 RC2 A7 - 크로스사이트 스크립팅[Cross-Site Scripting, XSS]

A7 : 크로스사이트 스크립팅[Cross-Site Scripting, XSS] * 정의 웹 페이지에 악의적인 스크립트를 포함시켜 사용자 측에서 실행되게 유도할 수 있습니다. 예를 들어, 검증되지 않은 외부 입력이 동적 웹 페이지 생성에 사용될 경우, 전송된 동적 웹 페이지를 열람하는 접속 자의 권한으로 부적절한 스크립트가 수행되어 정보유출 등의 공격을 유발할 수 있습니다. * 대응방법 1. 외부입력 값에 스크립트가 삽입되지 못하도록 문자 변환 함수 또는 메서드를 사용하여 & “ 등을 & " 로 치환해야 합니다. HTML태그를 허용하는 게시판에서는 허용되는 HTML 태그들을 화이트리스트로 만들어 해당 태그만 지원하도록 해야합니다. - 코드 예제 1 alert(document.cookie); ..

개발/OWASP 2017 2020.12.17 임통끼

[Crawling] 브라우저의 USER AGENT 확인하는 방법

파이썬으로 웹 크롤링을 할 때면 User Agent가 필요한 때가 있습니다. 굳이 header에 언급을 하지않아도 크롤링이 가능하지만, 내가 로봇이 아니라는 것을 인지시키려면? 저는 여러 크롤링 프로그램을 동시에 돌리기 위해서 Header를 정의합니다. 가끔 User-Agent가 명시되지 않을 상태로 크롤링을 할경우, request 에러가 발생하는 경우가 있기 때문입니다. 그럼, User Agent의 값을 확인하는 법에 대하여 알아보겠습니다. 크롬 브라우저 같은 경우에는 크롬 브라우저 내에서 확인이 가능합니다. 기타 다른 브라우저들도 확인이 가능하겠지만, 간단하게 사이트를 이용하여 확인하도록 하겠습니다. 1. WhoIsHostingThis 사이트 https://www.whoishostingthis.com..

개발/Python3 2019.09.26 임통끼

Part 6 : OWASP 2017 TOP 10 RC2 A6 - 잘못된 보안 설정[Security Misconfiguration]

A6 : 잘못된 보안 설정[Security Misconfiguration] * 정의 바람직한 보안은 어플리케이션, 프레임워크, WAS, 웹 서버, DB서버 플랫폼에 대해 정의되고 적용되어 있습니다. 보안 기본 설정은 대부분 안전하지 않기 때문에 정의, 구현 및 유지 되어야 합니다. 또한 소프트웨어는 최신 버전으로 관리해야 합니다. -> 접근권한을 지정하지 않아 인증되지 않은 사용자도 게시물을 수정하거나 삭제할 수가 있는 상태입니다. * 대응방법 1. 불필요한 파일을 관리해야 합니다. 2. 디렉토리 권한을 설정해야 합니다. 3. 최소한의 사용자 계정을 사용해야 합니다. 4. 운영체제, 웹/앱 서버, DBMS, 코드 라이브러리들의 소프트웨어 보안을 업데이트해야 합니다. 그렇지 않다면, 보안 위협이 생기지 않..

개발/OWASP 2017 2019.08.05 2 임통끼