분류 전체보기 (75) 썸네일형 리스트형 C언어 9주차 #include #include #define max 100000int arr[max + 1]; // 소인수를 저장할 배열void min(int N) { for (int i = 2; i max_P) ? arr[num] : max_P; num /= arr[num]; } return max_P;}int main() { int N, K; scanf("%d %d", &N, &K); min(N); int count = 0; for (int i = 1; i 1.N, K에 해당하는 값을 입력받고 arr로 소인수를 저장할 배열을 만듭니다. 2. min함수에서 각 숫자들의 최소 소인수들을 저장합니다. 이때 사용되는 건 에라토스.. 웹해킹 9주차 Path Traversal파일 업로드 취약점(File Upload Vulnerability)은 웹 서비스를 통해 이용자의 파일을 서버의 파일 시스템에 업로드하는 과정에서 발생하는 보안 취약점이며, 이용자가 업로드될 파일의 이름을 임의로 정할 수 있을 때 발생합니다. 파일 업로드 취약점은 크게 Path Traversal과 악성 파일 업로드로 분류됩니다. 파일 업로드를 허용하는 대개의 서비스는 보안을 위해 특정 디렉터리에만 업로드를 허용합니다. Path Traversal 취약점은 업로드에 존재하는 이러한 제약을 우회하여, 임의 디렉터리에 파일을 업로드할 수 있는 취약점을 말합니다. from flask import Flask, requestapp = Flask(__name__)@app.route('/file.. 웹해킹 8주차 Command Injection 인젝션(Injection)은 악의적인 데이터를 프로그램에 입력하여 이를 시스템 명령어, 코드, 데이터베이스 쿼리 등으로 실행되게 하는 기법을 말합니다. Command Injection은 명령어를 실행하는 함수에 이용자가 임의의 인자를 전달할 수 있을 때 발생합니다. `` - 명령어 치환은 ``안에 들어있는 명령어를 실행한 결과로 치환됩니다.$ echo `echo theori`theori $() - 명령어 치환은 $()안에 들어있는 명령어를 실행한 결과로 치환됩니다. 이 문자는 위와 다르게 중복 사용이 가능합니다.$ echo $(echo theori)theori && - 명령어 연속 실행은 한 줄에 여러 명령어를 사용하고 싶을 때 사용합니다. 앞 명령어에서 에러가 발생하지.. 웹 8주차 PHP & MySQL13JOIN등을 이용하여 테이블을 합칠 수 있습니다. PHP & MySQL14기존에 있던 데이터가 이상하게 출력되어서 새로 만들어줬습니다 author table을 만들어준 뒤값을 입력하여 확인해봅니다author_id값을 메겨준 다음에 topic과 author을 id값을 기준으로 하여 auhor가 왼쪽으로 가도록(LEFT JOIN)합쳐줍니다. PHP & MySQL15 내용을 새로 추가할 수 있게 합니다. id값이 없는 WEB의 경우 오류가 나지 않도록 $author = '';를 써줍니다. PHP & MySQL16process_create파일을 수정해서 author_id값도 받도록 수정해줍니다 PHP & MySQL17~20 (내용이 쓰던 중 날아가서 하나로 합쳤습니다...) 각 요소를 t.. C언어 8주차 #include int main() { int num, N, M; long long x; scanf("%d", &num); for (int i = 0; i 1.테스트 케이스의 횟수를 받을 num과 N과 M에 해당하는 변수를 만들어줍니다. 2.수가 매우 커질 수 있으므로 결과를 계산한 값은 long long으로 저장합니다. 3. for(int i = 0; i4.안에 있는 for문은 조합을 간략화한 식으로, 이를 이용해 다리가 얼마나 연결될 수 있는지 계산합니다.4-1.원래는 각각 따로 계산했지만 오버플로우가 일어나서 4번의 방식으로 바꿨습니다....5.출력합니다. #include #include int main() { char N[1000000]; int count[10.. C언어 7주차 #include #include int main() { char x[51]; scanf("%s", x); int len = strlen(x); int i = 0; char y[101] = ""; while (i 1.x부분에 문자열을 입력받는다. 2.X의 개수가 몇 개 인지 while문에서 .이 나올 때 까지 센다. 2-1. .이 나올 때 까지 반복문을 센 뒤 홀수일 경우 폴리오미노가 불가능하므로 -1을 반환 뒤 프로그램을 종료한다. 3. X가 몇개가 나온지에 따라 strcat으로 y에 바뀐 문자열을 붙인다. 4.2부터 3까지의 과정을 문자열이 끝날 때 까지 반복한다.5.출력한다. #include int main() { int X; scanf(.. 웹 7주차 PHP & MYSQL 8위와 같이 하면 현재 몇 개가 있는지만 표시됩니다. topic뒤에 limit로 제한을 걸어서 몇 개가 나올지 제한하는게 안전합니다. mysqli_fetch로 데이터베이스에서 데이터를 가져올 수 있습니다. array형식으로 가져왔습니다. where로 추출하고 싶은 id를 선택할 수 있습니다. row[]나 column[]방식으로 추출하고 싶은 부분을 선택합니다. while($row = mysqli_fetch_array($result))을 이용하여 반복적으로 실행합니다. 데이터가 끝날 경우에는 while안에 NULL이 들어가며 PHP에서는 NULL값이 False와 같으므로 반복문이 끝나게 됩니다. PHP & MYSQL 9select부분을 index부분에 합친 걸 볼 수 있습니다. .. 웹해킹 7주차 MongoDB JSON 형태인 도큐먼트(Document)를 저장한다. 스키마를 따로 정의하지 않아 각 컬렉션(Collection)에 대한 정의가 필요하지 않습니다.JSON 형식으로 쿼리를 작성할 수 있습니다._id 필드가 Primary Key 역할을 합니다.이와 같은 특징들이 있다. MongoDB 연산자Comparison, Logical, Element, Evaluation 연산자가 있습니다. 각각 차례대로 보겠습니다. ComparisonNameDescription$eq지정된 값과 같은 걸 찾는다.(equal)$in배열 안의 값들과 일치하는 값을 찾는다. (in)$ne지정된 값과 같지 않은 걸 찾는다.(not equal)$nin배열 안의 값들과 일치하지 않는 걸 찾는다(not in) Logical.. C언어 6주차 #include #define SIZE 100int main() { int N, M; int paper[SIZE + 1][SIZE + 1] = {0}; scanf("%d %d", &N, &M); for (int i = 0; i M) { count++; } } } printf("%d\n", count); return 0;}1.첫번째로 for문을 돌리면서 각각 종이에 얼마나 가려져 있는지 세어봅니다.1-2. 세로 한 줄을 입력 받을 때 마다 얼마나 가려져있는지 2중으로 세는 방식입니다.1-3.이 떄 paper에 저장되는 값은 가려진 부분입니다. 2. 이번에는 가려지지 않은 부분을 셉니다. 2-.. 웹 6주 PHP & MySQL 1데이터베이스는 php와 mySQL을 이용할 것이다.PHP & MySGL 2php와 MySQL의 장점만을 사용할 것이다. 위와 같은 상황에서 php를 미드웨어라고 부른다.PHP & MySQL 3내용을 영상과 같이 만들어줍니다. MySQL의 경우 이전에 했던 것이 일부 저장되어 있습니다. PHP & MySQL 4PHP는 Mysql서버에 대해서 클라이언트의 역할이다 PHP & MySQL 5api중에서 mysqli를 사용할 예정이다.PHP & MySQL 6먼저 연동을 해줍니다. 저는 비밀번호를 설정하지 않았어서 빈 칸으로 둡니다php와 연동해서 추가한 모습입니다if($result === false){ echo mysqli_error($conn); }이 부분을 사용하여 오류를 출력합.. 이전 1 2 3 4 ··· 8 다음