WEB

[PHP] Magic Hash

오늘은 취약점...?이라고 하기에는 애매하지만, 아무튼 unintended한 동작으로 이루어지는 magic hash에 대해서 알아볼 것입니다. 봅시다. 1. Type juggling이란? 기본적으로 Type juggling이라는 개념을 알고 가야 합니다. Type casting이라고도 하죠. 말은 처음 들을수도 있지만 다들 코딩공부 하셨다면 다들 "형변환"에 대해서 들어보셨을겁니다. 직접 코딩할때도 수도없이 쓰고요. 다음 코드의 결과값을 예측해봅시다. #include int main(){ double a = 1.23; int b = int(a); print("%d", b); return 0; } 간단한 코드죠. 당연히 다음 값의 결과는 1이 나오겠죠? 기본적으로 다음과 같은 원리입니다. 더 본격적인 이야..

2021.03.26 게시됨

[PHP] strncmp 취약점(인증우회) 포스팅 썸네일 이미지

WEB

[PHP] strncmp 취약점(인증우회)

strncmp 취약점 php 1. 취약점 알아보기 오늘은 strncmp의 인증 취약점에 대해서 알아보려고 합니다. 먼저 함수의 원형을 봅시다. int strcmp ( string $str1 , string $str2 ) 각 str1과 str2를 인자로 넣어주면 리턴값으로 두 값이 같으면 0, 다르면 0이 아닌 값을 리턴합니다. 이 리턴값에 대해서 조금 더 봅시다. Returns 0 if str1 is greater than str2, and 0 if they are equal. 이렇게 두 값에 따라서 리턴값이 정해지는데, 특정 PHP 5.3에서 취약점이 발생한다고 합니다. 결론만 먼저 이야기하자면 인자로 string이 아닌 배열을 넣어줄 경우, ..

2021.03.21 게시됨

[web] Cookie vs Session, 그리고 HTTP 포스팅 썸네일 이미지

WEB

[web] Cookie vs Session, 그리고 HTTP

오늘은 쿠키와 세션에 대해서 써보려고 합니다! 쿠키 공부하다 보니깐 둘이 헷갈리는 개념인거 같아 정리할 겸 글을 씁니다. 맛잇어욯ㅎㅎ 저는 초코쿠키가 좋아요 일단 세 가지에 대해서 이야기 하기 전에 HTTP에 대해서 이야기 해봅시다. 0. HTTP란? 우선 HTTP는 Hyper Text Transfer Protocol의 줄임말로, 인터넷에서 정보를 주고 받을 때 지정해 놓은 프로토콜입니다. 무슨 얘긴지 모르겠다구요? 프로토콜은 기본적으로 규칙이라고 보시면 됩니다. 예시를 들어볼까요? 예를 들어 두 사람이 이야기를 하려고 합니다. 위처럼 둘다 한국말을 할 수 있는 상황이면 정말 좋겠지만 다음과 같이 A는 한국말 밖에 못하는 상황인데, B는 A에게 영어로 소통하려고 하면 당연히 소통이 이루어지지 않겠죠? 따..

2021.01.04 게시됨

WEB

[PHP] preg_match함수 알아보기

[PHP] preg_match함수 알아보기 우선 preg_match는 필터링을 하는 함수입니다. preg_match(정규식 표현 작성, 검색 대상 문자열, 배열 변수반환) 단, 변수는 반환될 때 배열식으로 반환되게 되며, 리턴값은 성공시 1, 실패시 0으로 리턴됩니다. 다음 예제식을 봅시다. 위 식의 결과값은 다음과 같겠죠? array(1) { [0]=> string(3) "Tom" } 물론 $reg값은 1이 되겠죠. 아, 참고로 왜 tom이 아니라 Tom이 검색되는지는 DB의 기본적인 성질때문인데, 대부분의 DB는 대소문자 구분을 하지 않기때문에 tom이 아닌 Tom, tOm, TOM등 모두 검색이 됩니다. 참고22) preg_match는 해당되는 문자열을 찾으면 바로 함수를 종료하는데, preg_ma..

2019.12.30 게시됨

[React] React에 대해서 포스팅 썸네일 이미지

WEB

[React] React에 대해서

React Introduction Interaction의 한 방법인 React에 대해서 알아봅시다. 일단 React가 왜 필요할까요? 가장 큰 장점은 웹페이지에서 어떠한 변화가 생겼을 때, 유동적으로 그 변화에 대해 대처할 수 있는 점 때문에 React는 매우 많이 쓰이고 있습니다. 위의 그림을 봅시다. 만얀 가장 왼쪽의 그림처럼 어떠한 웹에 변화가 생겼다고 해봅시다. 그렇다면 전통적인 프로그래밍으로 이루어진 UI의 경우에는 그 변화를 전체 UI에 반영하기 위해 전체 시스템을 검토해가면 바뀐 부분을 찾아가야 하는 것입니다. 예를 들어 설명하자면, 페이스북의 게시글에 좋아요를 하나 눌렀더니, 전체 페이지가 새로고침 되면서 맨 위 스크롤으로 다시 되돌아가지만, React를 사용하여 UI를 만든 경우, 좋아요..

2019.11.17 게시됨

React를 위한 Javascript 명령어들 포스팅 썸네일 이미지

WEB

React를 위한 Javascript 명령어들

1. Map and Filter 함수를 array function을 이용해 다음과 같이 바꿀 수 있다. Let's use map and filter python에서는 7번줄과 같은 뜻을 가진 javascript코드를 해봅시다. arrow function을 이용하면 다음과 같이 코드가 줄여지는 것을 알 수 있고, map을 이용하면 저 괄호 안에 있는 값들로 각각 리스트를 반환하게 됩니다. 아 저기는 console.log가 없지만 그걸 넣고 이제 node ch1.js를 하게되면 arr에서 2배가 된 값이 arr_map으로 반환되게 되겠죠. 그럼 이제 filter에 대해 배워봅시다. filter은 말그대로 필터, 값들을 걸러주는 역할을 하는 함수입니다. 위와 같이 코드를 작성하게 된다면 arr_filter안에..

2019.11.16 게시됨

[명령어] Let, Const, Var 에 대하여 포스팅 썸네일 이미지

WEB

[명령어] Let, Const, Var 에 대하여

JavaScript에서 변수를 선언할 때, 일단 1. 생성한다 2. 초기화한다 3. 이용한다 의 식으로 이용된다. 이때 필수적인 것은 아니지만, 변수형을 써주는것이 더 좋다.(c언어의 int, double처럼) 그 이유는 저게 변수 형식을 나타내기 때문(leteral, constant..) 덧붙일만한 이야기는 맨 처음에 선언할 때만 let을 붙여야한다는 점이다. 저렇게 값을 선언할 때만 넣어주면 됩니다. 1. Let let은 값을 바꿀 수 있다(수정가능) 2. Const Constant의 줄임말로, 상수값이며 값을 변경할 수 없다. 3. Var Let과 비슷한거 같지만 뭐가 다른지 모르겠음. 알면 업데이트한다

2019.10.14 게시됨

[JavaScript] JavaScript를 페이지에 추가하기 포스팅 썸네일 이미지

WEB

[JavaScript] JavaScript를 페이지에 추가하기

요즘 JavaScript공부를 시작했습니다:) 오늘은 JavaScript로 웹페이지를 추가하는 방법을 실습해볼게용 아 참고로 저는 간단한 project를 실행할 때는 repl.it라는 사이트를 이용할 겁니다. repl.it는 웹상에서 개발을 할 수 있게하는 사이트로, 짱짱맨입니다:D 우선 정말 간단한 html과 css코드입니다. 실행결과는 다음과 같구요. 냥 여기에다가 정말 간단한 JavaScript를 넣어볼게요 일단 js를 이용하고 싶으면 기본적으로 body의 마지막줄에 10~12번처럼 삽입해주면 됩니다. 거기에다가 다른 옵션들을 추가하는 방식이구요. 일단 저렇게하면 js파일 자체가 실행되게 됩니다. 다음과 같이 입력하면 저렇게 뜹니다. 집가싶 추가로 console.log같은걸 해보시기 바랍니다. 그리..

2019.10.14 게시됨

Httpie 설치하기& 간단한 실습 포스팅 썸네일 이미지

WEB

Httpie 설치하기& 간단한 실습

Httpie는 굉장히 중요해요! 시작합시다. 우선 httpie는 다운로드받기 쉽습니다. 더보기 pip install --upgrade httpie 로 우선 httpie를 vscode에 다운받고, Httpie 명령어를 배워봅시다. Httpie는 항상 다음과 같은 형식으로 보내지게 됩니다. http [flags] [METHOD] URL [item[item]] =옵션 운영체제 상관없이 터미널이면 모두 상관없는 것으로 알고있습니다. 하지만 윈도우로밖에 안해봐서 리눅스같은 다른 체계는 잘 모르겠네요. 이제 실습을 조금 해봅시다. 우선 httpie를 다운받으시고, http get (웹사이트이름) 을 보내면 헤더와 http코드가 나오게 됩니다. 전글의 테이블을 참고해도 좋을 것 같습니다. 참고로 example.com..

2019.10.08 게시됨

WEB

Http Request & Method

서버와 클라이언트가 있다고 하면, 클라이언트는 웹사이트를 이용하면서 서버와 수많은 상호작용을 하게 된다. 주로 통신규약은 http를 이용하고, django에서는 get과 post를 이용한다. get은 말그대로 공간을 가져달라는 것이고, post는 자신의 데이터를 가지고 서버에게 처리해 달라는 뜻이다. 이렇게 Django에서는 get과 post로 모든 것을 해결했다면 Restful framework에서는 get, post, put, delete, patch, opinion까지 있는데, 각 method에 대한 뜻은 다음과 같다. Method 뜻 Get 요청받은 URL의 정보를 검색하여 응답한다. Post 요청된 자원을 생성한다. Put 요청된 자원을 수정한다. Delete 요청된 자원을 삭제한다. Patch..

2019.10.08 게시됨

WEB

[JSON] JSON에 대하여

오늘은 JSON에 대해서 알아봅시다. JSON에 대하여 JavaScript Object Notation의 줄임말로, 데이터의 송수신을 자바스크립트의 객체로서 수행할 수 있게끔 하는 가벼운 문자열 데이터 표현식을 말합니다. 이 JSON은 JavaScript로 이루어져있지만, Django나 PHP로 이루어져있는 서버도 JSON이 이용가능하다고 합니다. 어떤 사람이 자바스크립트 객체로 어떤 정보를 보낼 때, 모든 수신자가 자바스크립트 객체 표현식을 아는 것을 아닙니다. 따라서, JSON은 누구나 아는 자료형인 문자열로 바꾸어 보냅니다(Serializing) 더 자세한 건 JSON 사이트 참조. http://www.json.org/ JSON JSON (JavaScript Object Notation) is a ..

2019.10.08 게시됨