- Today
- Total
목록php (7)
CODE CAVE
[웹 보안] 출력 인코딩을 통한 XSS 방지 지난 포스팅에서 XSS 공격을 하는 아주 기본적인 체험에 대해 다뤘었습니다. [웹해킹] XSS - 5분만에 체험 해보기 웹 해킹 기법중 하나인 'XSS', 5분만에 체험 해보기 안녕하세요! 오늘은 웹해킹의 대표적인 주제 중 하나인 'XSS'에 대해 함께 알아보도록 하겠습니다. XSS가 무엇인지, 그리고 어떻게 작동하는지 초 kkotkkio.tistory.com 오늘은 반대로 이러한 'XSS' 공격을 방지하는 방법 중 하나인 '출력 인코딩'에 대해 알아보겠습니다. 출력 인코딩은 사용자의 입력을 안전하게 화면에 출력하는 방법으로, XSS 공격을 효과적으로 방지할 수 있습니다. 출력 인코딩이란? 출력 인코딩은 사용자로부터 받은 입력을 그대로 화면에 출력하기 전에 특..
쇼핑몰을 운영하는 회사에서 종사하시는 개발자 분들은 광고 시스템과의 연동 등의 사유로 전체 상품리스트를 XML로 뽑아야하는 경우가 있을 것이라고 생각되는데요. 이번 포스팅에서 제가 실제로 회사에서 활용한 코드를 가지고 상품 목록을 XML로 출력하는 방법에 대해서 얘기하고자 합니다. 개발 환경은 APM(Apache+PHP+MySQL) 입니다. PHP의 버전은 5.5구요! 소스코드는 아래와 같습니다. 제일 먼저 해야할 부분은 응답헤더 설정입니다. 웹은 기본적으로 Content-Type이 html 이므로 이것을 xml로 변경해주어야 합니다.header("Content-type: text/xml");주의할 점으로는 header 위에는 아무런 공백이 있어선 안됩니다.공백이 있으면 인식하지 못할 수 있습니다. 그리..
이번 포스팅에는 모바일 기기 체크 하는 방법 중에도 PHP로 하는 방법을 공유하고자 합니다. 보통 접속 기기의 종류는 자바스크립트에서 많이들 확인 하실거라고 생각이 되는데 RestAPI 방식이나 MVC로 로직이 분리가 되어있는 서버가 있을 경우 클라이언트(뷰) 단인 자바스크립트가 아니라 컨트롤러가 뷰로 데이터를 넘길때 여기에서 요청한 쪽의 헤더를 보고 모바일인지 데스크탑인지 확인하여 각기 다른 데이터를 리턴하면 될 것 같습니다. 다시 말해, 새 API를 아예 새로 받는 것보다 컨트롤러에서 return [view] 했던 것을 모바일 기기인지 체크하여 모바일이면 json 반환, PC면 뷰를 반환하도록 처리하면 구지 두번 작업하지 않아도 될 것입니다. 생각보다 단순합니다. 소스는 아래와 같습니다. //Chec..
저번에 파일 업로드를 포스팅 했었는데요~ 링크는 아래를 클릭하세요 ㅎㅎ http://kkotkkio.tistory.com/6 파일 업로드 기능을 사이트에 추가하셨다면 당연히 다운로드도 만드시겠죠? 업로드한 이유는 사용자와 공유하며 다운 받기 위함이니까요 ㅋㅋ 다행히 다운로드도 어렵지 않습니다. 짧아요~ 복붙해서 쓰셔도 좋구요 대략적으로만 설명드리면 php 파일 다운로드는 http 요청의 헤더를 변경하여 구현할 수 있습니다~ 위에서는 헤더의 타입과 길이, 파일이름 등을 지정하여 다운로드를 눌렀을 때 저 헤더와 파일을 합쳐서 응답하게 되는 것입니다. 위 소스에서 urldecode는 원본파일명에는 한글이 있을 수 있으므로 사용한 것 이구요, 파일의 전체 경로로 파일 사이즈를 구해오는게 filesize() 입니..
PHP에서의 파일 삭제는 업로드, 읽기, 쓰기 보다 훨씬 간결합니다. 뭐 다른 언어도 삭제는 다 간단하긴 하지만 ㅋㅋㅋ 아무튼 PHP에서는 unlink 라는 PHP 내장함수만 쓰면 끝! @unlink("../data/board/".$old_file); 위의 한줄이 끝입니다. ㅎㅎ 간단하죠? 매개변수로 파라미터로 파일의 경로명을 적어주시면 됩니다. @를 붙힌 이유는 만약 매개변수로 넘긴 파일명은 가진 해당 파일이 없을 경우에 에러가 출력되는데 없으면 없는대로 안지우게 될텐데 구지 사용자한테 에러를 보여줄 이유가 없기 때문에 붙힌 것입니다. 사용자 친화, 또는 서비스 신뢰를 위해서 왠만하면 일반인들한텐 외계어로 보일만한 PHP 에러는 보여지지 않는게 좋겠죠 ㅎㅎ 만약 파일을 디비화 시킨것이 있다면 통일성을 ..
PHP로 만드는 파일 업로드는 매우 심플합니다. 시스템 프로그래밍 (유닉스)를 해보셨다면 아마 더 낯 익으실 거예요 이 포스팅은 업로드만 다루고 있구요, 파일을 읽고 쓰는 것은 이번에 다루진 않지만 read, write도 PHP 언어 자체가 C언어 기반이라 그런지 좀 비슷한 감이 있어서 C언어 하셨던 분들은 한번 찾아서 공부해보시는것도 추천드립니다! 아무튼 본문으로 들어가서 업로드를 설명드리자면 매우 간단 명료 합니다. 방법은 아래와 같습니다. 1. 파일 업로드 할때는 폼에 꼭 enctype을 붙혀줘야 합니다.보통 PHP코드만 작성하고 이 enctype="multipart/form-data"를 안적어놔서 안되는 경우가 굉장히 많습니다.여러 질문 사이트의 질문을 보다보면.. 저 또한 오랜만에 파일 다루면 ..
파일 형식 체크 함수 (이미지, 그 외) function file_chk($file, $type = ""){ $file_ext = explode(".", strrev($file)); $file_ext = strrev($file_ext[0]); if(!$type or $type == "Gallery"){ //타입이 갤러리일 경우 $img_ok = array("gif", "png", "jpg", "jpeg", "bmp", "GIF", "PNG", "JPG", "JPEG", "BMP"); if(!in_array($file_ext, $img_ok)) page_move("이미지 파일만 업로드 가능합니다.", false); } else { //갤러리 외의 타입은 웹 코드 파일을 막는다. $img_no = array..