:: 게시판
:: 이전 게시판
|
- 자유 주제로 사용할 수 있는 게시판입니다.
- 토론 게시판의 용도를 겸합니다.
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
14/12/31 15:58
왜 그렇게 되는 건지는 프로그래밍에 대해 잘 알지 못해서 짐작이 안 갑니다만 피들스틱 님이 느끼는 황당함은 저도 잘 느껴집니다 프알못이긴 한데 아무래도 리카 님의 추측이 맞을 듯하고 티스토리 측에서 세세한 부분에 별다른 신경을 안 쓴 것 같네요
14/12/31 16:07
에러페이지 URL 을 흔히 쓰는 null 이라는 단어로 해놓아서... 정작 저 단어를 검색할때에도 그 페이지로 넘어가버리는겁니다.
위에도 말씀드렸지만 '피들스틱' 을 검색하면 '(블로그주소).tistory.com/search/피들스틱' 이라는 URL 로 연결되면서 검색결과를 보여주는데 '(블로그주소).tistory.com/search/null' 은 검색결과를 보여주는게 아니라 에러페이지를 띄워버립니다. 어디 중소기업 홈페이지도 아니고 티스토리 블로그 검색시스템이.... 좀 황당했어요.
14/12/31 16:30
코딩하기 나름이지만 대부분은 저게 실제 NULL이 아니라 따옴표 달아서 문자열로 예외처리를 할겁니다.
아니면 검색 안되게 막아놨겠죠.. 결국 이건 버급니다. 검색이 안되는게 아니라 정확히 되긴하는데 이상한게 되는거에요
14/12/31 17:22
예 제 생각에도 검색까지는 잘 되는것 같은데, 페이지 출력부분에서 문제가 발생하는것 같습니다.
왜 하필 검색이 실패했을때 출력되는 페이지 URL 을 null 과 같은 흔한 단어로 고정시켜 놓았을까 의아했습니다.
14/12/31 23:42
사실 따옴표 정도 다는건 sql인젝션 검색 3분만 해봐도 뚫죠. sql인젝션을 막을만한 충분한 기술력이 없다면 null검색 자체를 막는것도 나쁜 방법은 아닙니다...만 국내 최대 블로그업체중인 하나인 티스토리가 저는 저정도 기술력 없어요 하고 광고하는게 좀더 어처구니가 없죠,
14/12/31 16:34
인젝션은 당연히 바인딩 해서 처리하든 이스케이프 하든 잘 막고 있겠죠. 그것과 상관없이 비지니스 로직에서 문제되는 부분이 따로있을 것이고..(혹은 일부러 막아놓았거나) 건의를 하셨으니 처리되지 않을까 싶네요. 별 문제 같지는 않아보이는데, 특정 개인에 한해서는 불편하실 수 있죠. 흐흐 (당연히 불편한 사용자가 있으니 고쳐야하고 그럴거라 봅니다.)
14/12/31 16:40
저도 티스토리씩이나 되는 사이트에서 escape 안해서 저럴까..싶지만서도 더 큰 사이트들도 인젝션 무방비인 케이스를 몇번 봤던지라 설마..싶네요.
14/12/31 17:18
문의하고->3일후에 지금 처리중이다, 기다려달라->1주일후에(어제) 위와 같은 메일을 받아서...
'추후 서비스 개편때 최대한 수정되도록 하겠다' 니까 사실 빠른시일내에 디버깅되진 않을것 같다는 생각입니다. ...사실 개인적인 생각으로는 쿼리에 실패했을때 연결되는 저 에러페이지 URL만 .../search/둟꿣뗇뜳띱딻 등 흔한 단어가 아닌 주소로 바꿔주기만 하면 될것같은데 그게 그렇게 어렵나 싶네요.
14/12/31 19:19
검색 키워드는 저렇게 URL에 포함시키지 말고 쿼리스트링으로 처리해야 합니다..
예를 들면 http://domain/search/null 이렇게 하지 말고 http://domain/search?keyword=null 이렇게요... Url에 포함시키면 특정 문자는 검색이 잘 안됩니다. 보안 문제로 웹서버가 차단시키기도 하구요...?와 같이 미리 정해진 의미가 있는 문자도 있기 때문이지요.. 제가 몇달전에 이 문제로 골머리 썩인건 안자랑...;
14/12/31 20:04
좀 의아한 것이 "null"이 왜 특정문자인지 모르겠습니다. 실제 제어 문자도 아닐뿐더러 "nul"과 다를바 없이 문자 집합에서 영문자 n, u, l, l을 인코딩했을 뿐인데 말이죠. 문제가 있으셨단 부분은 아무래도 웹 서버 자체나 비지니스 로직에서 차단하셨던 것이 아닐까 합니다. (장비 쪽은 아닐테고) 추측하건데, 티스토리는 웹 서버에서 search/검색어 부분을 keyword=검색어 부분의 비지니스 로직쪽으로 맞춰서 라우팅해줬을 것이고, 단지 "null" 부분만 다른 곳으로(에러 페이지) 라우팅 해준 것 같습니다. (search/null도 되도록 하는 것이 사용자 입장에서는 당연할 것이라 보고, 기왕 RESTful하게 하려면 문제가 있어 보이는 부분은 수정하기는 해야겠죠. ^^;)
15/01/01 00:05
제가 폰으로 쓰느라 설명을 제대로 못 드렸네요 ^^;
위에서 이야기한 특정문자는 몇몇 특수문자를 말한 것이었습니다. IIS에서는 몇 가지 특수문자가 URL에 들어 있으면 보안 에러를 밷어내더군요... 그리고, 예를 들어서 "aa?bb" 키워드를 검색하고 싶으면, 위의 방법으로는 되지 않습니다. http://domain/search/aa?bb 와 같이 되는데, ? 이후는 쿼리스트링으로 인식하여서 실제로는 aa 만을 keyword로 인식하여 라우팅 해 주거든요... 따라서 깔끔하게 쿼리스트링을 사용하고, 키워드는 urlencoding 처리하여 파라미터값으로 붙이는게 좋습니다. Restful 원칙을 좀 어기더라두요... 파라미터가 숫자다/영문자다..이렇게 정해져 있는 경우가 아니라면 쿼리스트링을 쓰는 게 맞을 것 같습니다.
15/01/01 00:36
역시 뭔가 이상했는데, 그러셨던 거군요. 자세한 경험담 감사드립니다. 저도 어차피 일반 글 검색은 쿼리스트링으로만 처리히는지라 딱히 왈가왈부할 내용까지는 아니네요. 흐흐흐 새해 복 많이 받으시길 바랍니다. 그리고 보니 닉네임에서 포스가 뿜어져 나오시네요. 크크
|