본문 바로가기

프로그래밍/CS67

웹 공격(OWASP, XSS 등) OWSP:The Open Web Application Security Project 전 세계 보안 전문가들이 웹의 보안에 대한 표준을 정의하고 기업과 개발자들에게 효율적인 정보를 제공하는 오픈소스 커뮤니티 SQL 공격 시나리오 1. 사용자자가 input form에 무엇인가를 작성, 공격자는 데이터 베이스에 접근 2. 공격자는 input form에 일반 텍스트가 아닌 SQL문 작성 (예: 'OR '1' = '1') 3. where절에서 결굴 SQL문이 실행되어 로그인에 성공 방지 정책 1. 입력 값 검증 2. Prepared statement구문 사용 3. error message 노출 금지 Stored XSS: 스크립트가 서버에 저장, 지속적 기법이라고도 함 Stored XSS 시나리오 1. 공격자가 게.. 2022. 7. 15.
TCP/IP TCP/IP 회선 교환방식-> 패킷교환 방식 IP(인터넷 프로토콜)와 IP Packet IP 프로토콜의 한계: 비연결성(서비스 불능 상태여도 패킷 전송) 비신뢰성(중간에 패킷 사라짐, 순서 보장을 못함) TCP vs UDP UDP는 IP프로토콜에 포트, 체크섬 필드 정보만 추가된 단순한 프로토콜 TCP와 비교하면, 신뢰성은 낮지만 3way handshake방식을 사용하지 않아 빠른 속도 보장 2022. 7. 14.
웹 접근성(Web Accessibility) 웹접근성의 정의 일반적으로 웹 접근성은 장애인, 고령자 등이 웹 사이트에서 제공하는 정보에 비장애인과 동등하게 접근하고 이해할 수 있도록 보장하는 것 얻을 수 있는 효과 사용자층 확대 다양한 환경 지원 사회적 이미지 향상 웹접근성 지침 인식의 용이성: 모든 콘텐츠는 사용자가 인식할 수 있어야 한다 운용의 용이성: 인터페이스 구성요소는 조작 가능하고 내비게이션 가능해야함 이해의 용이성: 콘텐츠는 이해할 수 있어야 한다 견고성: 웹 콘텐츠는 미래의 기술로도 접근할 수 있도록 견고하게 만들어야 함 WAI-ARIA 종류 WAI (Web Accessibility Initiative) : 웹 표준을 정하는 W3C에서 웹 접근성을 담당하는 기관 ARIA (Accessible Rich Internet Applicati.. 2022. 7. 11.
[사용자 친화 웹] 웹 표준 & 접근성 웹 표준에 맞춰 웹 페이지를 작성하면 생기는 장점 1. 유지 보수의 용이성 2. 웹 호환성 확보 3. 검색 효율성 증대 4. 웹 접근성 향상 Semantic HTML - 정의: 구조를 만드는 것을 넘어 의미를 갖도록 만들기 - 필요성 1. 개발자간 소통 2. 검색 효율성 3. 웹 접근성 - 종류 페이지나 요소의 최상단에 위치하는 머릿말 역할의 요소 메뉴, 목차 등 사용되는 요소 문서와 연관은 있지만, 직접적인 연관은 없는 내용을 담는 요소 이름 그대로 문서의 메인이 되는 주요 콘텐츠를 담는 요소 게시글, 뉴스기사 등 독립적으로 구분해 재사용할 수 있는 부분 문서의 독립적인 구획을 나타냄, 적합한 의미의 요소가 없을 때 사용 제목을 표시할 때 사용하는 요소 페이지나 요소의 최하단에 위치하는 꼬릿말 역할의 .. 2022. 7. 8.
JavaScript React HTTP/네트워크 기술면접 준비 JavaScript Promise.all()의 기능과 필요한 이유에 대해서 설명해주세요. Promise.all()메서드는 순회 가능한 객체에 주어진 모든 프로미스가 이행한 후, 혹은 프로미스가 주어지지 않았을 때 이행하는 Promise를 반환 여러 프로미스의 결과를 집계할 때 유용하게 사용 순수함수란 무엇인가요? 불변성과 사이드 이펙트와 연결하여 설명해주세요. 동일한 입력에 대해 항상 동일한 출력을 반환하는 함수 외부의 상태를 변경하거나 영향을 받지 않는 함수 외부 상태의 변화를 최소함으로 유지하고, 함수 실행 결과 예측을 용이하게 하여 버그 발생 가능성을 줄이는 것에 목적 React React의 state와 props에 대해서 설명해주세요. Props(Properties)는 부모 컴포넌트에서 자식 컴포.. 2022. 6. 22.
Postman with Open API HTTP GET- READ POST - CREATE PUT - UPDATE PATCH - UPDATE DELETE - DELETE OPTIONS - OPTIONS 200 - 성공 300 - 리다이렉션 400 - 클라이언트 실패 500 - 서버 실패(여기서 오류나면 회사에게 데브옵스 개발자 혼남) REST API 자원에 대한 주소를 정하는 방법 디자인 원리/제약, 즉 규칙 2022. 6. 13.
[HTTP/네트워크] REST API "Representational State Transfer”의 약자 웹에서 사용되는 데이터나 자원을 HTTP URL로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식 REST 성숙도 모델 3단계 HATEOAS 원칙준수(응답에 리소스이 URL링크포함) 2단계 HTTP메소드 원칙 준수 1단계 개별 리소스와의 통신 준수 0단계 HTTP 사용 현실적으로는 2단계까지만 적용해도 좋은 API 디자인임 Open API 누구에게나 열려있는 API 단, API마다 정해진 이용 수칙이 있고, 이용 수칙에 따라 제한사항(가격, 정보의 제한)이 있을 수 있음 API Key API Key는 서버의 문을 여는 열쇠 로그인한 이용자에 자원에 적급할 수 있는 권한을 API Key형태로 제공하고, 데이.. 2022. 6. 9.
객체지향 프로그래밍 (프로토타입 체인) 프로토타입 체인 - 객체 지향 프로그래밍 특성 중 상속을 구현할 경우 프로토타입 체인을 사용 let leecoding = new Human('이코딩', 30); //속성 leecoding.age; leecoding.gender; //메서드 leecoding.eat(); leecoding.sleep(); let packhacker = new Student('박해커', 22); //속성 packhacker.grade; //매서드 packhacker.learn(); - 기본 메서드인 human은 상속 받음 - 학생은 추가적인 특징이 필요함 - 부모 클래스는 human, 속성과 메서드를 물려받는 자식클래스는 Student - '__proto__'으로 부모 클래스의 프로토타입, '부모의 부모 클래스'의 프로토타입.. 2022. 5. 26.
객체 지향 프로그래밍 객체 지향 프로그래밍 의의: 데이터와 기능이 별개로 취급되지 않고, 한 번에 묶여서 처리 가능 OOP - 사람이 세계를 보고 이해하는 방법을 흉내 낸 방법론 - 프로그램 설계 철학 - 모든 것은 객체로 그룹화 - 4가지 컨셉 캡슐화(encapsulation): 데이터와 기능을 하나의 단위로 묶는 것, 코드나 데이터의 은닉에 포커스 // TypeScript 문법입니다 // 클래스 내부에서만 쓰이는 속성 및 메서드를 구분시키기 위해 private이라는 키워드를 제공 // 은닉화를 도와주는 기능이 JavaScript에 지원하는 브라우저가 적음 class Animal { private name: string; constructor(theName: string) { this.name = theName; } } n.. 2022. 5. 25.