PHP 배열을 데이터베이스에 저장하는 방법으로는 아래 세가지가 자주 이용됩니다. 1) implode를 사용한 값 분할 방법 $arrayString = implode(",", $myArray); 저장 후 explode를 이용해 다시 변환할 수 있습니다. 하지만 이 방법은 $MyArray 안에 ","값이 존재할 경우 예상치 못한 결과가 발생될 수 있습니다. 2) json_encode을 이용한 JSON 인코딩 방법 $arrayString = json_encode($myArray); json_decode을 이용해 배열을 다시 디코딩 할 수 있고, 앞서 사용한 implode 방법보다 훨씬 안전합니다. 특히 JSON으로 데이터를 주고 받는 경우가 많기 때문에 많이 사용되는 방식입니다. 3) 배열 직렬화 $array..
function strip_param_from_url( $url, $param ) { $base_url = strtok($url, '?'); // Get the base url $parsed_url = parse_url($url); // Parse it $query = $parsed_url['query']; // Get the query string parse_str( $query, $parameters ); // Convert Parameters into array unset( $parameters[$param] ); // Delete the one you want $new_query = http_build_query($parameters); // Rebuilt query string return $b..
php.ini는 PHP에 대한 설정값들이 저장되어 있는 파일입니다. 다양한 값들이 저장되어 있으며 php extension에 대한 설정 또는 사용자가 추가한 값들도 저장될 수 있습니다. php.ini 설정은 PHP 함수를 통해 제어하거나 php.ini 파일을 직접 수정할 수 있습니다. 이렇게 값을 변경한 이후에는 아파치를 재시작 시켜 php.ini 설정값들을 다시 불러 오도록 해야 합니다. [주요 설정] 개발시 사용되는 환경 설정 값들은 정말 다양하고 많습니다만 그 중 일부 설정에 대해 알아봅니다 0과 1로 주는 설정들은 대부분 1: 켠상태, 0: 끈상태 입니다. opcache.enable 해당 옵션이 켜져 있으면 PHP 파일이 수정되더라도 즉시 반영되지 않고 짧게는 몇초 길게는 1분 가량의 시간이 지난..
모든 값을 다룰 때는 해당 데이터가 오염되었다는 가정하에 사용하는 것이 좋습니다. 클라이언트로 부터 받아오는 값을 서버에서는 필터를 통한 다음 사용하여야 하며, 클라이언트로 전달할 값 또한 필터를 거친 다음 출력하여야 합니다. 웹 개발은 사실 어떤 것 보다 가장 쉬우면서도 어려운게 이러한 부분들이 아닌가 싶습니다. 값 하나를 출력하거나 입력 받을 때도 수많은 경우를 고려하여야만이 비로소 견고한 웹이 제작되기 때문입니다. 보안은 습관임과 동시의 시스템이라 생각합니다. 어떤 제작사든 이에 대한 올바른 가이드라인을 제작하여 이를 바탕으로 수행하는 것이 좋습니다. 회사는 개개인의 역량을 통해 하나의 시스템을 만드는 곳이기 때문입니다. 서두가 길었습니다. 이번 편은 보안에 대한 이야기로 그중에서도 XSS에 대한 ..
session_save_path)( session_start() session_set_cookie_params(); PHP파일을 통해 php.ini설정을 수정하려면 ini_set()함수를 사용하면 됩니다. php.ini 설정에서 session.use_strict_mode = 1로 설정되어 있다면 Session ID가 영구적으로 사용될 수 있습니다. 이렇게 될 경우 공격자가 세션 ID 훔쳐와 사용할 수 있기 때문에 해당설정은 0으로 꺼두는 것이 좋습니다. session.use_only_cookies는 쿠키로면 session ID 를 사용하도록 하는 것으로 URL의 GET 값으로 PHPSESSID가 전달되는 것을 지원하지 않게 합니다. 해당 설정은 1로 켜주세요. session.cookie_httpOnly는..
PHP는 모든 스크립트에 미리 정의된 많은 변수를 제공합니다. 변수는 외부 변수 에서 내장 환경 변수, 마지막 오류 메시지에서 마지막으로 검색된 헤더에 이르기까지 모든 것을 나타냅니다 . 이러한 사전 정의된 변수들은 굉장히 일반적으로 사용되기 대문에 필히 숙지해 놓을 필요가 있습니다. Superglobal — 모든 범위에서 항상 사용할 수 있는 내장 변수 $GLOBALS — 전역 범위에서 사용 가능한 모든 변수를 참조합니다. $_SERVER — 서버 및 실행 환경 정보 $_GET — HTTP GET 변수 $_POST — HTTP POST 변수 $_FILES — HTTP 파일 업로드 변수 $_REQUEST — HTTP 요청 변수 $_SESSION — 세션 변수 $_ENV — 환경 변수 $_COOKIE — ..
파일 업로드시 최대 크기는 php.ini 설정에서 upload_max_filesize 설정을 통해 조절할 수 있고 max_file_uplads 설정은 한 번에 몇개 까지 동시에 파일을 올릴 수 있는지 설정합니다. dirname() - 상위 디렉토리의 경로를 반환합니다. basename() - 경로의 후행 이름 구성 요소를 반환합니다. parse_url() - URL을 구문 분석하고 해당 구성 요소를 반환합니다. realpath() - 정규화된 절대 경로 이름을 반환 합니다. pathinfo(string $path, int $flags = PATHINFO_ALL): array|string $path에 따라 연관 배열 또는 문자열에대한 정보를 반환합니다 현재 경로 정보 검색에 대한 정보는 사전 정의된 예약 ..
오류 보고를 사용하면 PHP 보안에 두 가지 측면이 있습니다. 하나는 보안 강화에 도움이 되고 다른 하나는 해가 됩니다. 기본 해킹 공격에는 시스템에 부적절한 데이터를 제공하고 반환되는 오류의 종류와 컨텍스트를 확인하여 시스템을 프로파일링하는 작업이 포함됩니다. 이를 통해 크래커는 서버에 대한 정보를 수집하여 약점 포착할 수 있습니다. 예를 들어 공격자가 이전 양식 제출을 기반으로 페이지에 대한 정보를 수집한 경우 변수를 재정의하거나 수정하려고 할 수 있습니다. php.ini 파일에 display_errors설정이 디폴트로 Off되어 있는데 켜놓는 경우들도 있습니다. // php.ini 설정 수정 방법 ini_set('display_errors', 'On'); 예제 #1 사용자 정의 HTML 페이지로 변..
PHP에는 mysql과 mysqli가 있습니다. mysql은 오래전 사용되었고 현재에는 mysql을 개선한 mysqli가 있으므로 mysqli를 사용하시는게 좋습니다. mysqli_prepare() - 실행을 위해 SQL 문을 준비합니다. mysqli_stmt_result_metadata() - 준비된 명령문에서 결과 세트 메타데이터를 반환합니다. mysqli_stmt_fetch() - 준비된 명령문에서 바인딩된 변수로 결과를 가져옵니다. mysqli_fetch_array() - 결과 세트의 다음 행을 연관, 숫자 배열 또는 둘 다로 가져옵니다. mysqli_stmt_store_result() - 결과 세트를 내부 버퍼에 저장 MySQL 서버에 대한 새 연결 열기 mysqli::__construct my..
escapeshellarg(string $arg): string 문자열 주위에 작은 따옴표를 추가하고 기존의 작은 따옴표를 인용/이스케이프하여 문자열을 쉘 함수에 직접 전달하고 단일 안전한 인수로 처리할 수 있도록 합니다. 이 함수는 사용자 입력에서 오는 쉘 함수에 대한 개별 인수를 이스케이프하는 데 사용해야 합니다. Windows에서 escapeshellarg() 는 대신 백분율 기호, 느낌표(지연 변수 대체) 및 큰따옴표를 공백으로 바꾸고 문자열 주위에 큰따옴표를 추가합니다. 또한 연속된 백슬래시( \)의 각 줄은 하나의 추가 백슬래시로 이스케이프됩니다. system('ls '.escapeshellarg($dir)); escapeshellcmd(string $command): string 임의의 명령..
- Total
- Today
- Yesterday
- 빛의성당
- URL인코딩
- CSPRNG
- 도스 코파스
- 코스모스팜
- wp-members
- wordpress #워드프레스 #url
- 한빛미디어
- URL디코딩
- 라이트세일
- 사용자정의하기
- 철거
- 빈화면
- WordPress
- Sanitize
- FTP권한문제
- 워드프레스
- 이사
- php
- ontent
- 이전설치
- 11번가 아마존 #우주패스 #우주쓰레기
- MySQL
- Theme Customization
- Lighitsail
- url복사
- 스프레드연산자
- 고흐1인칭시점
- 썸머노트
- 지대공
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |