본문 바로가기

The Focus

(556)
해킹 의심 ip - 61.72.153.136
ORA-22990: LOB 위치는 트랜잭션을 걸칠 수 없습니다 LOB(Longraw, Blob, Clob) 등을 select ... for update 등등의 방법으로 DB 에 넣으면서 Stream 을 flush() 할 때.. 아래와 같이, flush() 가 commit() 뒤에 존재하면 오류. try{ ... conn.commit(); }catch(Exception e){ ... }finally{ ... stream.flush(); } 예외 상황이 발생하더라도 flush() 하고자 finally 에 넣겠다는 의도였겠지만.. DB 상의 LOB 처리시에는 try 문 안에서 flush() 한 다음 commit() 하고 finally 에서 close() 하는 것이 맞음.
PreparedStatement SQL 문에 ? 를 적용할 수 없는 것 이를테면, String sql = "select no, name from table_name where no = '32' "; 라는 쿼리가 있다고 하자(물론, 정상 작동한다고 가정한다).. 우리가 익히 보아 온 PreparedStatment 의 SQL 문은 아래와 같은 것이다. String sql = "select no, name from table_name where no = ? "; 그러면, DB table 의 column 명 대신에 ? 를 아래와 같이 사용해 보면 어떨까? String sql = "select no, name from table_name where ? = ? "; 예외를 throw 하지도 않으면서 에러가 난다.. try ~ catch 에 잡히지도 않는다. 이제, DB table 명 ..
header 의 Referer 가 null 인 경우 request.getHeader("Referer") 가 null 인 경우.. - 주소창에 URL 입력하고 들어온 경우 null 도메인은 기억하고 있다가 입력할 수 있겠지만, 특정 URL 을 입력하기는 어려울텐데.. - '즐겨찾기' 나 '북마크' 된 경우 null 이 케이스가 제법 많을 듯.. - 네이버 오픈 메인 서비스 링크 타고 들어오면 null 파라미터에 napp=mysection 와 각종 카운터가 들어 있음 - 화면을 새로고침..? 새로고침 하기 전에 Referer 가 null 이었으면, 새로고침 해도 null 새로고침 하기 전에 Referer 가 null 아니었으면, 새로고침 해도 null 아님 - window.open() 으로 열리는 경우 null - 해킹툴..? - ajax 호출시 not nu..
동일 사이트 내에서의 SameSite 문제 유감 동일 사이트 내부를 통해, https 에서 http 로 전환할 때는 쿠키와 세션 관계가 유지, http 에서 https 로 전환할 때는 쿠키와 세션 관계가 끊김(동일 사이트 내에서 이러고 있음). (2021.06.04 현재 기준. 향후 또 어떻게 바뀔지 누가 알랴..) 예를들어 http://abc.com/a.jsp 가 https://abc.com/b.jsp 호출시, a.jsp 에서 세팅한 세션 정보가 b.jsp 에서 참조되지 않음. 만약, https://abc.com/a.jsp 가 http://abc.com/b.jsp 호출시, a.jsp 에서 세팅한 세션 정보는 b.jsp 에서 참조할 수 있음. 동일 사이트 내에서의 http 와 https 전환임에도 이런 문제가 발생하는 것은, 크롬이나 동일 소스코드를 ..
iOS 에서 alert 와 confirm 작동 오류..? iOS 의 사파리 웹브라우저에서는 alert 와 confirm 이 modal 로 작동하는데, iOS 에 설치된 특정 앱에서는 alert 와 confirm 이 modaless 로 작동하기도 하네요.. 무슨 말이냐 하면, alert 나 confirm 이 실행되면 화면이 멈추고(block) 사용자가 확인이나 취소를 터치한 후에 다음 코드가 실행되는 것이 기존 프로그래밍의 흐름인데, 마지막 코드까지 모두 실행되고 화면에는 거꾸로 표시가 되는... 마치, 영화 테넷을 보는 듯한.. ㅠ. 아직도 감이 안 잡히신 분이라면.. alert(1); alert(2); 이라고 순서대로 자바스크립트가 세팅되면.. 1이 세팅된 알림창이 먼저 열리고 (확인 버튼을 누르면 1 알림창은 닫히고), 2가 세팅된 알림창이 나중 열리는 (..
모바일 기기에서 iframe 없이 youtube 영상 자동재생 유튜브 정책에 의해, 자동 재생(autoplay) 은 묵음(무음, mute) 상태에서만 가능. 기본 세팅은, 썸네일을 클릭했을 때 재생되면서 음원도 들리는 방식. 유튜브 사이트가 아니라, 내 사이트에 유튜브 영상을 embed 하면서, 화면이 열릴 때 바로 재생(play) 가 되게 하려면.. 상기와 같이 iframe 을 사용하면서 autoplay=1&mute=1 이라고 세팅하면 되는데.. PC 에서는 잘 되지만, 모바일 기기에서는 작동하지 않아요. 사실은, iOS 가 들어간 모바일 기기에선 작동하고, Android 가 들어간 모바일 기기에선 작동하지 않는거. 자, 여기서 부터가 오늘 이야기 하려는 내용. 모바일 기기(iOS 와 Android 모두)에서도 작동하게 하려면 YouTubeIframeAPI 를 사..
크롬에서 로그인시 세션 만료 에러 (iframe 때문?) 크롬의 행보와 매번 부딪히게 되네요.. 크롬이 http 를 지양하고, https 를 지향한다는 것은 이미 알려진 사실이구요. 최근에 크롬이 CSRF 를 이유로 iframe 을 사용할 때 세션을 끊어먹는(실제로는 쿠키값을 복사하지 않는) 만행(?)을 저지르고 있습니다. 그냥 웹사이트를 https 로만 돌게 하지 왜, 크롬의 만행이라고 하느냐 하면요.. 동일 도메인임에도 쿠키값을 복사하지 않아서 그렇습니다. ^^; 나는 전혀 문제 없는데, 왜 문제를 삼느냐구요..? 사실인즉 이렇습니다. 예전에는 모든 웹사이트가 http 로 설계되었습니다. 그러다가 보안이 강조되다 보니 (우리나라에선 KISA 의 영향이 크죠), 로그인 부분에 https 를 사용하게 되었구요. 그런데, http 화면에서 https 를 사용하다..