본문 바로가기

전체 글292

XSS(Cross Site Script) Filter. 웹에서 텍스트를 입력받다보면 다음과 같이 입력 필드 (여기서는 설명이라고 적은)에 저렇게 script코드를 넣으면 스크립트 실행이 가능하다. 설명 : [ ] 이걸 막아야지.. 막기위해 가장 좋은 방법은.. &나 등의 특수 기호를 &, 등으로 치환하면 된다. 브라우저에서는 그 문자열들을 보고 기호로 다시 복원해주니까. 그러면 이러한 입력이 오는곳 모든 곳 마다 다 문자열 치환하는 코드를 구현한다면? 해결될거같긴 하다. 근데 엄청 비효율적이다. 유틸리티처럼 뽑아낸다 해도, 매번 입력받는 곳 마다 저걸 호출해야할테니까. 다행히, Spring에서는 Filter를 적용할 수 있다. Interceptor도 있지만 우선 URL이 호출되어 먼저 만나는 녀석이 Filter니까.. Filter를 하나 추가하여, 해.. 2022. 11. 9.
Microsoft Azure OAuth연동. OAuth로그인을 하면서, Microsoft azure로도 연동을 할 수 있다. 선행되어야 할 것은, azure에 계정이 있어야한다. 1. 앱 등록하기 MS Azure에 로그인 후, '앱 등록'을 눌러서 앱을 추가하고 어느 계정까지 연결해줄지는 아래 링크 참조. (MS의 페이지가 가장 최고지 뭐) https://learn.microsoft.com/ko-kr/azure/active-directory/develop/quickstart-register-app 2. 리디렉션 URI추가 1에서 앱을 등록한 이후, 앱의 세부 정보를 확인할 수 있는 페이지로 들어갈 수 있다. 세부 내용을 보는 페이지에 진입하여 좌측 메뉴 중 '인증'을 선택하여 플랫폼 구성화면으로 들어간다. 나의경우는 웹페이지였으므로, 메뉴 중, '.. 2022. 11. 2.
JSP에서 사용자 confirm받기 JSP페이지에서 사용자 confirm을 받을 일이 필요한 경우가 있다. 그래서 메시지박스를 하나 띄우고 해야할것 같은데.. JSP에서는 너무나 직관적으로 제공하고있다. 이름부터 confirm.. (최고다!) if( confirm('')){ //Yes인 경우 } else{ //No인 경우 } 만약 yes,no가 아닌 다른 text이거나 yes, no, cancel도 있을것 같다. (아니면 만들어쓰거나) 2022. 10. 26.
WPF. EventHandler를 비하인드 코드가 아닌 ViewModel에 구현하기 WPF를 가지고 여러가지 만들다보면.. Event Handling을 처리해야할 경우가 제법 있다. 근데.. xaml에서 Event="MyEventHandlerName"을 입력하면.. 비하인드 코드에 작성이 된다. 뭐.. 비하인드 코드에 작성하는것이 잘못된건 아닌데.. MVVM패턴을 쓸때에는 가급적이면.. ViewModel에서 핸들링 하게 구현하는것이 더 좋다. 비하인드에 구현할 경우 여러가지 불필요한 코드들이 추가되어야하는 경우가 제법 있다. 그런 불필요한 코드들을 추가하기 싫다면.. VM을 static 또는 global로 선언하고, 그 안에서 모든 멤버들을 public으로 오픈하면 되는데.. ViewModel이 아닌 객체가 ViewModel의 멤버에 함부로 접근하도록 설계하는 것이 좋을지 나쁠지는 뭐... 2022. 10. 20.
WPF의 routedevent. Event처리시 e.handle=true를 해주는 이유 먼저.. WPF에서 UI Element에 대해서 간단히 그리면 아래와 같다. 그냥 UserControl에 Grid와 Button하나를 다음과 같이 넣는다고 해보자. 화면에는 이렇게 그려질거다.. z-index를 기준으로 그리면 아래와 같고.. 여기서 만약 사용자가 Test1 버튼을 누르면.. 이벤트는 다음과 같은 경로로 발생된다. Base Element -> Control 까지 내려갔다가, 다시 Control -> Base Element로 넘어온다. 이 과정에서 내가 event를 별도로 처리하기 위해 EventHandler를 구현했을때.. 이후에 더이상 routed event를 진행하지 않겠다고 한다면, e.handle = true로 설정해준다. private void Test1Button_Click(o.. 2022. 10. 20.
IntelliJ에서 Git을 이용한 머지작업. IntelliJ에서 Git을 이용하여 머지하는 것은 항상 헷갈린다. 그래서 기억하기 위해 작성. Branch A가 있고, Branch B가 있다고 가정하자. 나는 BranchB의 내용을 Branch A에 반영하고싶다. 그럴때의 방법은.. 1. intellij하단의 브랜치를 클릭하여 머지 할, (소스를 반영해줄) 브랜치를 생성하거나 선택한다. (여기서는 A) 소스 체크아웃이 끝나면 fetch/ pull등을 통해 소스를 땡겨와도 좋다. 2. 이제 소스를 머지해와서 BranchB의 내용을 A에 머지할거다. IntelliJ의 메뉴중 git선택 -> merge해서 브랜치 이름을 BranchB로 정의 후, merge. 만약 conflict가 없을 경우 바로 머지가 되고, conflict이 발생하면 머지하는 창이 뜬.. 2022. 10. 19.
728x90