form(3)
-
form 안의 button은 기본적으로 submit 기능을 가지고 있다! (preventDefault 안 먹힐 때?)
HTML만을 다루거나 정적 웹사이트를 만들 때는 그럴 일이 거의 없겠지만, 사용자의 입력에 따라 다르게 반응해야 하는 웹앱(CRUD는 기본)을 제작한다면 JavaScript에서 innerHTML로 태그를 직접 수작업으로 넣어주어야 하는 경우가 있다. 그래서 실수하기 쉽다. IDE에서 오리지널 HTML이나 EJS, PUG 등 템플릿을 사용한다면 HTML Element의 속성들도 자동추천해주기 때문에 버그가 적다. 하지만 JS에서 수작업을 한다면 특정 속성을 간과한 것이 큰 버그로 이어질 수 있다. 나는 사용자들의 댓글 내용을 li 태그로 뿌리면서, "현재 로그인한 유저의 id"와 "댓글작성자의 id" 같은 li에 한해서 삭제버튼을 부여하려고 아래와 같은 코드를 만들었다. myForm.innerHTML = ..
2020.07.26 -
🔐 소프트웨어 개발 보안 구축 #2 - 입력데이터 검증 및 표현
👍 입력데이터 검증 및 표현이란? 일반적으로 소프트웨어는 사용자에게 데이터를 입력하는 방식을 가지고 있다. 사용자의 모든 정보가 회원가입, 로그인, 주문서작성 등 개발자가 준비한 FORM에 맞추어 일정한 양식으로 전송되는 것이다. 문제는 "전송"될 때 보안에 취약할 수 있다는 것이다. 그래서 개발자는 사용자가 입력할 입력데이터가 실제로 안전할지 단계에서 검증해야 한다. 즉, 개발자는 입력데이터에 대한 "유효성 검증체계"를 미리 갖추어, 이 검증에 실패할만한 데이터가 입력되는 경우에 대비하여 에러처리 루틴을 구현해야하는 것이다. 예를 들어, 개발자는 사용자가 입력한 정보가 개발시 미리 계획한 자료형과 일치하는지 확인하고 일관된 언어셋(컴퓨터가 문자를 처리하기 위한 방식으로 ASCII, UNICODE, UT..
2020.07.14 -
[Flask] Crawling and requests on Flask
1. requests 모듈에서 status_code 값은 str이 아닌 int이다. 2. Scrapping시 실제 없는 쿼리를 사이트가 자체 404로 꾸몄을 경우, 이 역시 200으로 처리되므로 requests.get()에 allow_redirects=False를 인자로 추가해주면 404 예외처리가 가능해진다. 3. HTML form에서 POST처리를 하려면 라우팅할때 인자로 methods=["POST"]를 추가해준다.
2020.06.02