프로그래밍팁
-
Python webdriver chromedriver mobile emulater example프로그래밍팁/Python 2019. 9. 2. 11:18
print("++++ start ++++") from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options = Options() chrome_options.add_argument('--user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) CriOS/56.0.2924.75 Mobile/14E5239e Safari/602.1') driver = webdriver.Chrome('/Users/home/Downloads/auction/chromedriver_mac..
-
XSS 취약점을 이용한 쿠키 탈취 예방(feat. php)프로그래밍팁/php 2019. 6. 25. 22:17
보안을 위해 쿠키에는 중요한 데이터를 포함하지 않는 것이 원칙입니다. 하지만 불가피하게 필요에 따라 중요한 정보가 담기는 경우가 있거나, 담긴 데이터를 보호해야할 때가 있습니다. 우리는 이럴 때 secure와 httpOnly를 사용해야 합니다. httpOnly - 브라우저와 서버간의 요청시에만 쿠키 전송 - document.cookie 명령어로 쿠키를 호출하는 것을 차단 secure - 네트워크에서 통신 중 쿠키를 훔쳐가는 행위 차단 - https 필요 다수의 개발자가 php에서 쿠키를 저장할때 아래와 같이 사용합니다. setcookie('name','value',time()+3600,'/','domain.com'); 위의 경우 해커에게 쿠키를 탈취 당하기 쉽습니다. 그래서 우리는 이제 아래와 같이 해야..
-
JWT Login Flowchart프로그래밍팁 2019. 6. 25. 20:22
때로는 말로 설명하는 것 보다 그림으로 보는게 더 효과적일때가 있습니다. 실무에 사용 가능한 JWT 로그인 순서도 입니다. Login flow : 로그인 요청 * Access token의 만료시간(expiration time)은 짧을수록 보안에 좋습니다. front에서 token 저장 시 보안에 신경 써야 합니다. Data request flow (success) : 데이터 요청 Data request flow (fail) : 데이터 요청 실패 시 토큰 재발급 * 새 Access token으로 Data request를 다시 해야 합니다. 장점 - Refresh token을 함께 이용하여 token 하나만 이용할때 보다 안전 합니다. - Back-end에서 Session/Cookie를 사용하지 않아 서버에..
-
fastcgi_finish_request() for php프로그래밍팁/php 2019. 6. 25. 10:40
php에는 fastcgi_finish_request() 라는 함수가 존재 합니다. 그러나 이 함수에 대한 정보는 부족 합니다. 데이터를 클라이언트에 flush하고 요청이 끝날때까지 동작한다고만 되어 있으며 (https://www.php.net/manual/en/function.fastcgi-finish-request.php), 적절한 예제는 찾을 수 없습니다. 그래서 다음과 같은 예제를 만들었습니다. sleep은 오래걸리는 프로세스라고 가정 합니다. 예제를 실행하면 10초동안 로딩 후 화면에 Start가 나타납니다. 하지만 fastcgi_finish_request() 함수를 사용하면 sleep이 끝나기도 전에 화면에 Start가 표시됩니다. fastcgi_finish_request() 앞에 코드는 일단 ..
-
Node.js 웹서버 빠르게 준비하기 (feat. Express & ejs)프로그래밍팁/node.js 2019. 5. 4. 01:11
Node.js가 세상에 나타난지 벌써 10년 입니다. Node.js는 쉬운 접근과 좋은 성능으로 많은 사랑을 받고 있습니다. 이 포스트에서는 리눅스에서 Node.js와 웹 프레임워크 Express, 그리고 템플릿 ejs를 빠르고 쉽게 세팅하여 바로 사용할 수 있는 방법에 대해서 설명하고 있습니다. 1. Node.js 설치 Node.js를 설치하는 방법은 다양합니다. 그 중에서 쉽고 정확한 방법으로 Rod Vagg 의 github를 참고하는 방법 입니다. https://github.com/nodesource/distributions 링크로 이동합니다. 스크롤하여 아래로 이동하면 버전별 설치 방법을 볼 수 있습니다. 현 시점에서 안정적인 버전 10 설치를 추천 합니다. # Using Ubuntu curl -..
-
swift WKWebView ios 하이브리드앱 기초 샘플프로그래밍팁/swift 2018. 8. 18. 22:44
아이폰 하이브리드앱 제작 시 기초 설정을 해놓고 개발을 시작하면 편리합니다. 사실 아래 내용만 잘 따라해도 웬만한 하이브리드앱의 80%를 제작 가능합니다. 개발환경 언어 : SwiftIDE : Xcode9 프로젝트 만들기 iOS > Single View App 선택 프로젝트 이름 세팅, Swift 선택 Main.storyboard 에 웹뷰 추가 ① Main.storyboard② ViewController Scene③ Show the Object Library 버튼 클릭④ we 로 검색해서 WebKit View 화면에 드래그 드랍 > 사이즈 조절 https 뿐만 아니라 http 도 허용되도록 앱 보안 설정 ① info.plist② Bundle version 옆에 + 버튼 클릭③ App Transport S..