programming

preg_match

설명 정규식이 일치하는지 수행한다. preg_match(string $pattern, string $subject, array $matches = null, int $flags=0, int $offset=0): int|false parameters pattern 검색할 패턴(문자열) subject 입력 문자열 matches 입력 문자열이 패턴과 일치하면, 검색된 결과가 배열 형태로 저장된다. flags PREG_OFFSET_CAPTURE : 모든 일치 항목에 대해 오프셋 단위를 배열로 반환 PREG_UNMATCHED_AS_NULL : 일치하지 않으면 null 값을 반환하고 그렇지 않으면 빈 문자열 반환 offset 시작 문자열 위치 지정 보통 처음부터 시작 pattern 검색할 패턴은 / 문자로 둘러싸여..

programming/php 2023.01.04

mb_convert_encoding

설명 mb_convert_encoding(array|string $string, string $to_encoding, array|string|null $from_encoding = null): array|string|false 문자열을 한 인코딩(from)에서 다른 인코딩(to)으로 변환 parameters string 변환할 문자열 또는 배열 to_encoding 변환할 인코딩 from_encoding 현재 인코딩 return 인코딩된 문자열 또는 배열 취약점 멀티바이트를 사용하는 utf-8 환경에서 %a1~%fe 값과 백슬래시(\)에 해당하는 %5c가 합쳐져서 하나의 문자를 나타내게 된다. %a1~%fe으로 magic_quotes_gpc 옵션 우회 가능하다.

programming/php 2023.01.02

magic_quotes_gpc

php.ini 파일에 작성되어 있는 설정값 디폴트는 on이며, 자동적으로 모든 GET, POST, COOKIE 데이터에 addslashes() 처리 사용자 입력 값에 쿼리를 조작하기 위한 ', %27 등이 있을 경우, 이를 백슬래시(\) 처리하여 공격을 방지한다. +우회 멀티바이트를 사용하는 언어셋(utf-8) 환경에서는 백슬래시(\) 앞에 %a1~%fe 값이 들어오면 해당 값과 백슬래시(\)에 해당하는 %5c가 합쳐져서 하나의 문자를 나타내게 된다.

programming/php 2023.01.02

substr

설명 문자열의 일부를 반환한다. substr(string &string, int $offset, ?int $length = null): string parameters string 입력 문자열 offset 문자열의 인덱스는 0부터 시작하며, 반대로는 -1부터 되돌아온다. offset이 설정되어 있지 않다면 시작점은 0이다. length 양수는 반환 문자열 개수를, 음수는 인덱스를 의미한다. 인덱스 전까지 반환하며, 생략되거나 null이면 offset부터 끝까지 문자열이 반환된다. example

programming/php 2023.01.02

$_FILES

$_FILES HTTP 파일 업로드 변수 HTTP POST 메서드를 통해 업로드된 항목의 배열 업로드된 모든 파일 정보가 포함된다. $_FILES['userfile']['name'] 클라이언트 기계에 있는 파일의 원본 이름 $_FILES['userfile']['type'] 브라우저가 이 정보를 제공한 경우, 파일의 MIME 유형 ex) image/gif php 측에서 MIME 유형은 확인되지 않으므로 확실하지는 않다. $_FILES['userfile']['size'] 업로드된 파일의 사이즈, 바이트 $_FILES['userfile']['tmp_name'] 서버에 저장되는 업로드된 파일의 임시 이름 $_FILES['userfile']['error'] 업로드된 파일과 연관된 에러 코드 $_FILES['use..

programming/php 2023.01.02

@(데코레이터)

함수를 수정하지 않고 유연하게 함수에 특정 동작을 추가하거나 작동 방식을 바꿀 수 있다. decorate() 함수는 함수를 인자로 받고, 내부 wrapper() 함수는 decorate() 함수의 인자로 넘어온 함수를 호출한다. hello() 함수를 decorate() 함수의 인자로 넘긴 후, hello2 변수에 할당하면 "hello" 출력 전에 before, 후에 "after"이 출력되는 것을 볼 수 있다. def hello(): print("hello") def decorate(func): def wrapper(): print("before") func() print("after") return wrapper hello2=decorate(hello) hello2() @ 기호와 함께 함수 헤더 위에 데코..

programming/python 2023.01.01