[Web Service] CSRF, XSRF 크로스 사이트 요청 위조

예전에도 한번 찾아봤던 것 같은데 기억이 안나서…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. update 함수는 당연히 http method POST만 받지 않을까? 이미지 tag에 src 로는 공격 못할 듯.
  2. Request의 Referer를 check한다. (이건 기본인듯…)
  3. csrf 방지 토큰을  form view의 input tag에 심는다. 서버는 form에서 그 값이 잘 실려오는지 그리고 건강한 값인지 검사 한다.

음 다른 방법이 또 있는지 살펴보니.. CAPTCHA가 있더라

post action 뒤에 CAPTCHA 인증을 하면 될 것 같다.

나중에 내가 서버 개발로 돌아가면 좀 더 깊게 파보아야 겠다. ㅎ

 

Advertisements

[survey] smule, yokee

Smule

 

* 서비스 명 : Sing!

* 서비스 유형 :  음악 + 소셜네트워크 + 게임

* 수익모델 :

광고, 광고 제거 유료 계정(VIP)

40$ / year : 무제한 노래 저장, free : 100개 한정

 

* 2015 revenue (From sensortower.com)

android : 580k $ =58만 달러

ios : 2.6m $ = 260만 달러

 

318만 달러 :=  약 37억 5천500만원

* 음원 :

음원 이슈를 어떻게 해결 했는지 궁금하군요.

 

* 스토리지 :

회사 인프라 사용하는 것으로 추정…

 

* Smule Total Revenue (매출) :

2011 :    600만 $

2012 : 1200만 $

2013 : 2000만 $

2015 : 3830만 $ = 451.8억

 

* 직원수 :  200

 

* Reference

http://www.smule.com/about

http://www.smule.com/apps

http://www.bloomberg.com/bw/articles/2013-10-10/smule-a-social-network-for-making-music

http://www.forbes.com/companies/smule/

http://www.forbes.com/most-promising-companies/

https://sensortower.com/ios/kr/smule/app/sing-garaoke-jeonsegye-1wi-mobail-falseraebang/509993510

 

 

Yokee™ by Famous Blue Media

 

* 서비스 명 :  yokee

* 국적 : 이스라엘

* 직원수 : 10

* 서비스 유형 : 음악 + 소셜네트워크

 

* 음원 : youtube 컨텐츠 (라이선스 비용 지불을 회피 할 수 있을 것 같습니다)

 

* 스토리지 : youtube

* 2015 매출 : (from sensortower.com)

Yokee 노래방 (10만$ – ios, 2.4만 $-android) =

-> 12.4만$ := 1억 4600만원
* Reference

http://www.yokee.tv/

 

https://www.linkedin.com/profile/view?id=ADEAAAA9mPMBcddVQmvPY2G2pAh1Ubgvmvd6_iQ&authType=name&authToken=pjK8&locale=en_US&srchid=2541043791449727507659&srchindex=4&srchtotal=57&trk=vsrp_people_res_name&trkInfo=VSRPsearchId%3A2541043791449727507659%2CVSRPtargetId%3A4036851%2CVSRPcmpt%3Aprimary%2CVSRPnm%3Afalse%2CauthType%3Aname

 

https://www.crunchbase.com/organization/yokee-by-famous-blue-media

 

https://sensortower.com/ios/kr/famous-blue-media-ltd/app/muryo-falseraebang-yokeewa-hamgge-yutyubeueseo-garaokereul-jeulgiseyo/547109049

https://sensortower.com/ios/kr/famous-blue-media-ltd/app/muryo-falseraebang-yokeewa-hamgge-yutyubeueseo-garaokereul-jeulgiseyo/547109049

 

 

[Swift] Swift Standard Library – Ranges

Numbers and Basic Values

Apple 문서를 참고로 했으며 내가 알지 못하는 모르는 부분에 대해 정리한다.

Ranges
struct Range : A half-open interval over a comparable type, from a lower bound up to, but not including, an upper bound.

struct ClosedRange : An interval over a comparable type, from a lower bound up to, and including, an upper bound.

한국말로 하면 개구간 , 폐구간이다. 한국말 정말 어렵다.

하지만 그림으로 본다면?

스크린샷 2017-10-09 오전 4.58.57

스크린샷 2017-10-09 오전 5.01.26.png

단번에 이해함.
(사실 이미 알고 있는 개념인데 영어로 받아들이는게 아직도 벽이 있다)

스크린샷 2017-10-09 오전 5.04.37.png

무다 무다!

Range

Operator~=(_:_:)

  • Returns a Boolean value indicating whether a value is included in a range.
static func ~=(pattern: Range, value: Bound) -> Bool

코드로 하면 contains와 동일한 기능을 하는 편리한 opeator.

let chosenNumber = 3
if 0..<10 ~= chosenNumber {
print("\(chosenNumber) is a single digit.")
}
// Prints "3 is a single digit."
if (0..<10).contains(chosenNumber) {
print("\(chosenNumber) is a single digit.")
}
// Prints "3 is a single digit."

clamp 영어 의미를 알아야 이해가 쉽다.

(1...7).clamped(to: 3...10)
// 3...7

References

 

[xcode] Storyboard warning: prototype table cells must have reuse identifiers

Storyboard warning: prototype table cells must have reuse identifiers

In Short~

Step1. give a name to cell

Step2. Clean “DerivedData”  ~/Library/Developer/Xcode/DerivedData/

Step3. Restart Xcode

 

https://stackoverflow.com/questions/9808621/storyboard-warning-prototype-table-cells-must-have-reuse-identifiers