[Security] CSRF (XSRF) Cross-site request forgery

https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)

https://ko.wikipedia.org/wiki/%EC%82%AC%EC%9D%B4%ED%8A%B8_%EA%B0%84_%EC%9A%94%EC%B2%AD_%EC%9C%84%EC%A1%B0

공격 시나리오

  1. 예를 들어 로그인 한 사용자의 글을 삭제 하도록 유도 하고자 한다.
  2. 그 사용자(target)가 사용하는 사이트 주소와 이메일을 손에 넣는다.
  3. 사용자가 계정에 로그인 했다는 가정 하에 또는 로그인 게이트웨이 페이지로 이동 하도록 한다.
  4. <img src=”http://hostname/post/delete/<post_id>”&gt; 를 넣게 되면 사용자 세션(쿠키)를 이용하여 수정을 일으키도록 할 수 있다.(음 그런데 http method가 post인 경우 어찌 하지?)

그럼 어떻게 막나?

http://sitr.us/2011/08/26/cookies-are-bad-for-you.html

졸려…내일 다시 써야겠다…

[Life Style] Table Taste 2015 (SKT) – 서울

스크랩

Table_Taste_100_2015

  • 가스트로 통

    • 전화번호 : 02-730-4162
    • 주소 : 서울 종로구 자하문로6길 11-36
    • 사이트주소 : http://www.gastrotong.co.kr/
    • 영업시간 : 12:00~22:00
    • 휴일 : 연중무휴
  • 괴르츠

    • 전화번호 : 02-336-1745
    • 주소 : 서울 마포구 토정로 136-13
    • 사이트주소 : http://gortz.co.kr/
    • 영업시간 : 09:30~02:00
    • 휴일 : 연중무휴
  • 그란구스또

    • 전화번호 : 02-556-3960
    • 주소 : 서울 강남구 삼성로 340 앨포트빌딩
    • 사이트주소 : http://www.grangusto.net/
    • 영업시간 : 11:30~15:00, 17:30~22:50 (주말 21:50 마감)
    • 휴일 : 명절 휴무
  • 까델루뽀

    • 전화번호 : 02-734-5233
    • 주소 : 서울 종로구 자하문로16길 5-5
    • 영업시간 : 12:00~14:50, 18:00~21:50
    • 휴일 : 일요일 휴무
  • 더 그린 테이블

    • 전화번호 : 02-591-2672
    • 주소 : 서울 서초구 동광로 91
    • 사이트주소 : http://www.thegreentable.co.kr/
    • 영업시간 : 11:30(코스 12:00)~15:00, 18:00~22:00(일 21:00 마감)
    • 휴일 : 월요일 휴무
  • 더 키친 살바토레 쿠오모

    • 전화번호 : 02-3447-0071
    • 주소 : 서울 강남구 언주로164길 29 영안빌딩
    • 사이트주소 : http://www.kitchensalvatore.kr/
    • 영업시간 : 11:30~15:00, 18:00~23:00 / 24:00(금·토)
    • 휴일 : 연중무휴
  • 라 빠숑

    • 전화번호 : 02-543-3009
    • 주소 : 서울 강남구 선릉로161길 11
    • 영업시간 : 18:00~01:00
    • 휴일 : 일요일 휴무
  • 라 싸브어

    • 전화번호 : 02-591-6713
    • 주소 : 서울 서초구 서래로 24 다솜빌딩 5층
    • 영업시간 : 12:00~15:00, 18:00~22:00
    • 휴일 : 연중무휴
  • 로리스 더 프라임 립

    • 전화번호 : 02-590-2800
    • 주소 : 서울 서초구 서초대로 411 GT TOWER 3층
    • 사이트주소 : http://lawrys.kr
    • 영업시간 : 11:30~15:00, 17:30~22:00
    • 휴일 : 연중무휴
  • 르 지우

    • 전화번호 : 02-3476-7036
    • 주소 : 서울 서초구 사평대로26길 40
    • 영업시간 : 11:00~24:00(일 22:00 마감)
    • 휴일 : 연중무휴
  • 보버라운지

    • 전화번호 : 02-6020-5755
    • 주소 : 서울 중구 퇴계로 100 스테이트타워 남산
    • 사이트주소 : http://www.boverlounge.com/
    • 영업시간 : 08:00~11:00, 11:30~14:30, 18:00~21:30
    • 휴일 : 연중무휴
  • 비스테까

    • 전화번호 : 02-792-7746
    • 주소 : 서울 용산구 회나무로 49
    • 사이트주소 : http://www.bistecca.co.kr/
    • 영업시간 : 12:00~15:00, 18:00~22:30
    • 휴일 : 연중무휴
  • 시 ∙ 화 ∙ 담(인사동)

    • 전화번호 : 02-738-8855
    • 주소 : 서울 종로구 인사동길 13
    • 사이트주소 : http://www.siwhadam.com/
    • 영업시간 : 12:00~15:00, 18:00~22:00
    • 휴일 : 연중무휴
  • 아델라 베일리

    • 전화번호 : 02-3217-0707
    • 주소 : 서울 종로구 북악산로 48
    • 영업시간 : 11:30~22:00
    • 휴일 : 연중무휴
  • 오룸 다이닝

    • 전화번호 : 02-518-6876
    • 주소 : 서울 강남구 도산대로58길 16 청담빌딩
    • 사이트주소 : http://www.oroomdining.com/
    • 영업시간 : 12:00~14:30, 18:00~22:00
    • 휴일 : 명절 휴무
  • 오버랩

    • 전화번호 : 02-3444-4715
    • 주소 : 서울 강남구 압구정로4길 12
    • 사이트주소 : http://blog.naver.com/overlap12
    • 영업시간 : 11:30~22:30
    • 휴일 : 일요일, 명절 휴무
  • 워커힐 클락식스틴(CLOCK16)

    • 전화번호 : 02-450-4516
    • 주소 : 서울 광진구 워커힐로 177 쉐라톤워커힐호텔 16층
    • 영업시간 : 월-토 12:00~15:00, 18:00~22:00, 일 11:00~15:00, 18:00~22:00
    • 휴일 : 연중무휴
  • 이도 다이닝

    • 전화번호 : 1599-5263
    • 주소 : 서울 강남구 도산대로 332
    • 사이트주소 : http://www.yidodining.com
    • 영업시간 : 10:00~17:00, 17:30~23:00
    • 휴일 : 연중무휴
  • 친친 원테이블

    • 전화번호 : 02-737-0682
    • 주소 : 서울 종로구 옥인3길 16
    • 영업시간 : 12:00~24:00
    • 휴일 : 연중무휴
  • 콩두

    • 전화번호 : 02-722-7002
    • 주소 : 서울 중구 덕수궁길 116-1
    • 사이트주소 : http://congdu.com
    • 영업시간 : 11:30~15:00, 17:30~22:00
    • 휴일 : 명절 휴무
  • 콩두맘

    • 전화번호 : 02-515-0112
    • 주소 : 서울 강남구 도산대로 318 SB타워 B동 2층
    • 사이트주소 : http://blog.naver.com/condumaam
    • 영업시간 : 11:30~15:00, 17:30~22:00
    • 휴일 : 연중무휴
  • 콩지POT지

    • 전화번호 : 02-745-2203
    • 주소 : 서울 종로구 북촌로 21-15
    • 사이트주소 : http://kongjipotji.fordining.kr/
    • 영업시간 : 11:30~22:00
    • 휴일 : 연중무휴
  • 토레엔

    • 전화번호 : 02-797-7746
    • 주소 : 서울 용산구 회나무로 69
    • 사이트주소 : http://www.torren.co.kr/
    • 영업시간 : 12:00~15:00, 18:00~22:00
    • 휴일 : 연중무휴
  • 파씨오네

    • 전화번호 : 02-546-7719
    • 주소 : 서울 강남구 언주로164길 39
    • 사이트주소 : http://ipassionne.com/
    • 영업시간 : 12:00~15:00, 18:00~22:00
    • 휴일 : 일요일 휴무
  • 파크 로얄

    • 전화번호 : 02-537-7333
    • 주소 : 서울 서초구 동광로49길 64
    • 영업시간 : 11:00~15:00, 17:00~22:00
    • 휴일 : 연중무휴

[Tip] SQLite Full Text, Multi thread programming

Thread를 Kill로 죽인다는 이상한 소리 하는 사람 있으면 찾아가서 혼내줄꺼다.

Run Loop을 자연스럽게 빠져나오게 프로그래밍 해야지…

회사에서 있던 이야기인데

SQLite에서 Full Text Search를 만들어야 했다. row가 10만건 이상 일 때는 대략 18초 정도 걸린다.

FTS3, 4 색인 사용 안하고 LIKE ‘%keyword%’ 를 이용 해야 한다. 순간 DB Read에서 스레드를 최대 18초 정도 잡고 있을 수 있다.

중간에 검색을 중단 하려면 partial search해서 DB를 오래 점유하는 것을 막고 검색 while loop에서 escape 할 수 있도록 해야 한다.

연차 많으신 분 왈….한번에 다 던지고 결과를 받으면 안되냐고, 중간에 검색 중지 하고 싶으면 관련 스레드를 죽이라는데 안된다고 답변함.

이해를 돕기 위해 슈도코드로 써보면 다음과 같다.

DB에서 18초 정도를 잡고 있는데 이걸 Thread kill로 죽인다고 정상 종료 보장 되지 않는다.

모를 수 있다고 생각 하고 넘어갔는데 정말로 kill을 생각 한건 아니겠지…


    while(true) {
        results = db.searchKeyword(keyword, pk_begin, pk_end); // partial search
        if (results.empty) break;
        // delegate search results to other threads like UI(Main thread)
        if (paused) break; 
        pk_begin = pk_end + 1;
        pk_end = pk_begin + window_size - 1;
    }

[ios] sqlite3 full text search

Setting

Podfile
pod 'sqlite3'
Add LLVM prepprocessor macros at Project “Pod”‘s Target sqlite3
  • Debug : SQLITE_DEBUG, SQLITE_ENABLE_FTS3_PARENTHESIS, SQLITE_ENABLE_FTS3
  • Release : SQLITE_ENABLE_FTS3_PARENTHESIS, SQLITE_ENABLE_FTS3

스크린샷 2015-10-08 오후 6.42.52

Pods (build automation)
post_install do |installer|
  installer.pods_project.targets.each do |target|
    if target.name == "sqlite3"
      target.build_configurations.each do |config|
        if config.name == 'Debug'
          config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)', 'COCOAPODS=1', 'SQLITE_DEBUG', 'SQLITE_ENABLE_FTS3_PARENTHESIS', 'SQLITE_ENABLE_FTS3'] 
        end
        if config.name == 'Release'	
          config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)', 'COCOAPODS=1', 'SQLITE_ENABLE_FTS3_PARENTHESIS', 'SQLITE_ENABLE_FTS3'] 
        end
      end
    end
  end
end
Reference

[java] java 1.7 concurrent package

https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/package-frame.html

Executor

An object that executes submitted Runnable tasks. You can customize the tactic which handle Runnable Object how to execute and manage execution order.

ExecutorService (More useful)

An Executor that provides methods to manage termination and methods that can produce a Future for tracking progress of one or more asynchronous tasks.

  • invokeAll
  • invokeAny
  • shutdown
  • submit

Callable (Overcome runnable)

A task that returns a result and may throw an exception. Implementors define a single method with no arguments called call.

Future

A Future represents the result of an asynchronous computation.