Python Web Applications in cPanel on CloudLinux

안녕하세요, 제 이름은 Liquid Web의 John입니다 오늘은 Python Selector를 사용하여 CloudLinux에서 cPanel을 사용하여 Python 웹 응용 프로그램을 실행하는 방법을 보여 드리겠습니다

시작하려면 몇 가지 전제 조건이 있습니다 CloudLinux에서 실행되는 cPanel / WHM 서버와 패키지를 설치하기위한 터미널에 액세스해야합니다 주요 소프트웨어 설치 전에 전체 백업을 수행하는 것이 좋습니다 시작하자 SSH를 루트 사용자로 서버에 넣고 다음 명령을 실행하십시오 냠 설치 lvemanager alt-python-virtualenv e-apache24-mod-alt-passenger 이제 다음 명령을 실행하여 사용 가능한 모든 Python 버전을 설치하십시오 yum groupinstall alt-python 패키지와 의존성이 설치되었으므로 이제 파이썬 선택기를 사용하는 방법을 보여 드리겠습니다

먼저 WHM에 로그인하고 CloudLinux LVE 관리자를 클릭하십시오 Setup Python App 버튼은 기본적으로 사용자 인터페이스에서 숨겨져 있습니다 우리는 그것을 보이게함으로써 시작할 것입니다 옵션을 클릭 한 다음 사용자 인터페이스 설정을 클릭하여 확장하십시오 웹 인터페이스에서 파이썬 앱 숨기기 확인란을 선택 취소하고 저장을 클릭하십시오

이제 cPanel에 로그인하십시오 소프트웨어 섹션으로 스크롤하여 Python 앱 설치를 클릭하십시오 원하는 Python 버전 선택 그런 다음 App 디렉토리의 이름을 입력하십시오 앱 도메인을 선택하고 설정을 클릭하십시오 cPanel의 Python Selector에서 비디오를 시청 해 주셔서 감사합니다

더 자세한 정보를 얻으려면 liquidwebcom/kb에서 다른 Knowledgebase 기사를 확인하십시오

How Netflix uses Python | Netflix and Python | Python Applications | Edureka

Netflix는 리더입니다 비디오 스트리밍과 모든 걸릴 savvis에 대한 일족의 이 마켓 거인이 밝혀냈다

파이썬은 성공의 비밀입니다 다시 여기 환영합니다 Edureka의 Wajiha와 함께 Netflix가 어떻게 파이썬을 사용하는지에 대한 흥미로운 정보 시작하기 전에 구독을 확인하십시오 채널로 이동하여 Bell 아이콘을 눌러 업데이트 상태를 유지하십시오

모든 최신 Edureka 비디오 돌아 오는 중 세션을 향해, 작은 소개부터 시작합시다 넷플 릭스로 간 다음 우리는 계속 나아가 볼 것입니다 Netflix가 파이썬을 사용하는 방법 CDN, 오픈 포드 햄 대용량 데이터 분석 및 엔지니어링 및 기계 학습 과학적 실험 비디오 인코딩 애니메이션 보안 및 마침내 모니터링 및 자동 치료 그래서 더 이상의 지연없이, Netflix를 시작해 보겠습니다

우리 모두가 알고 있듯이 미국 회사입니다 비디오 온 디맨드 서비스를 제공합니다 약 1 억 4 천 8 백만 명의 가입자가 있습니다 전 세계에 걸쳐 그리고 그 숫자는 하루 동안 계속 증가하고 있습니다 약 20 년 동안 Netflix가 가장 큰 텔레비젼 연속물을위한 그것의 일족의 임금 전세계 영화 미국에서 가장 빠르게 성장하는 브랜드 수익이 20 포인트 50 억 2019 년 6 월까지

눈길을 끄는 것만으로 충분합니다 기술 분야 전체에 흥미로운 점이 있습니다 계속 나아가 봅시다 Netflix가 다양한 도메인에서 어떻게 파이썬을 사용하는지 넷플 릭스의 엔지니어들은 인정합니다

전체 내용 수명주기에 Python을 사용한다는 것 모든 콘텐츠를 결정할 때부터 CDN 운영에 최종 동영상 248,000,000 가입자에게 서비스를 제공합니다 이제 우리는 시리아의 이름을 여기로 가져 왔습니다 이것이 무엇인지 알아 봅시다 어떻게 파이썬의 CDN을 사용하는지 또는 콘텐츠 전달 네트워크 Netflix는 오픈 연결을 사용합니다 이것은 기본적으로 그림으로 나타난다

재생 버튼을 누르면 모든 콘텐츠가 전달됩니다 최종 사용자에게 보입니다 이 CDN 오픈 커넥트는 기본적으로 다음을 필요로합니다 다양한 다른 소프트웨어가 설계되고 운영된다 파이썬으로 작성되었습니다

이 네트워크뿐 아니라 이 CDN의 기본 요소 인 Python 응용 프로그램 왜냐하면 파이썬은 네트워크 문제를 해결하는 데 중요한 역할을하기 때문입니다 이제 우리는 첫 번째 구성 요소 인 개방형 연결을 알고 있습니다 계속 나아가 봅시다 Netflix가 파이썬을 어떻게 사용하는지 디자인 엔지니어링 엔지니어링 팀이 책임진다

Netflix 구름 처리를위한 오버 트래픽 관리 용량 운영 관리, 콘텐츠가 한계에 도달 한 서비스 및 함대 효율성을 높일 수 있습니다 이 팀에서 사용하는 라이브러리는 numpy입니다 Sci-Fi 도서관, 수치 분석을 수행하는 데 사용됩니다 03, 아마존의 소프트웨어 개발 킷 파이썬 용 웹 서비스 이것은 파이썬 개발자들이 파이썬을 AWS에 통합하는 데 도움이됩니다

이로써 기반 시설 반경에서의 개발을 허용하고, Q 또는 rq, 파이썬 라이브러리 작업을 추적하는 데 도움이됩니다 대기열에 있으며 실행을 허용합니다 따라서 관리를 허용합니다 비동기 워크로드 플라스크 Netflix의 플라스크 사용 파이썬 웹 개발 Netflix는 플라스크 API를 사용합니다 이전의 모든 세그먼트를 함께 바인딩합니다

이 Netflix뿐만 아니라 Jupiter know Books를 사용합니다 상호 작용과 함께 이것은 목성의 확장 된 것입니다 Scale Jupiter는 데이터 분석에 널리 사용되는 것으로 알려져 있습니다 운전 데이터 분석에 매우 적합합니다 및 시각화 결과적으로 용량 회귀 분석에 도움이됩니다

자, 앞으로 나아가 자 기계 학습 기계 학습을 위해 파이썬이 사용되는 방법 개인화 알고리즘 생성 범위 유스 케이스 개인화 파악 알고리즘은 기계 학습 모델을 다음과 같이 훈련시키는 데 도움이됩니다 Netflix 표준에 따라 또한 개인화 된 권장 사항 개요를 제공합니다 나날의 기준 레이블에서 세대 등 도서관은 깊은 신경망을 배울 필요가 있습니다 tensorflow 카라와 파이 생각 XG 부스터 그라디언트가 증가한 의사 결정 트리의 경우 가벼운 GBM입니다

Netflix는 또한 상당히 높은 수준의 라이브러리를 개발했습니다 작업 영역과 결합하는 데 도움이되는 사실 로깅 기능 추출 등 이 모든 Netflix 외에도 사용합니다 메타는 기계 학습 프로젝트를 만들기 위해 흘러 들었다 Big Data 팀은 ETL을 실행할 책임이 있습니다 또는 추출로드 및 임시 파이프 라인을 추출합니다

중요한 부분 이 오케스트레이션은 파이썬으로 작성되었습니다 이 팀은 jupyter 노트북에서 실행되는 스케줄러를 사용합니다 종이 밀을 사용하여 템플릿으로 작업 유형을 생산합니다 예를 들어, Presto Etc 이 외에도 팀은 또한 이벤트 중심 플랫폼을 만들었으며, 이것은 파이썬에서 완벽하게 구현됩니다

그들은 여러 가지 사건을 만들어 그것을 결합 시켰습니다 넷플 릭스가 필터 반응을 할 수있게 해주는 단일 시스템 및 Route 이벤트 괜찮아 자 이제 보러 가자 파이썬이 과학 실험에 사용되는 방법

이 플랫폼은 기본적으로 실험을 위해 만들어졌습니다 A / B 테스트 녀석 허용 테스트는 스플릿 테스트라고도합니다 비교를 다룬다 두 가지 버전을 사용하고 더 나은 성능을 파악할 수 있습니다 그 중에서도 과학 실험 팀은 데이터 통계에 새로운 혁신을 제시하십시오 및 시각화

파이썬 프레임 워크 여기에 구현 된 측정 항목은 측정 항목 보고서입니다 Pi Pika를 기반으로합니다 재사용 가능한 매개 변수화 된 쿼리 작성 가능 통계 부문 arrow 및 rpy to는 통계를 계산하는 데 사용됩니다 어느 쪽이든 파이썬으로 또는 시각화 비디오 인코딩에서 플롯으로 도움이됩니다 또는 미디어 클라우드 엔지니어링 팀이 인코딩을 담당합니다

및 다시 인코딩 작업 Netflix 카탈로그 용 Python은 V 수학과 같은 약 450 개의 프로젝트에 사용됩니다 비디오 다중 평가 평가 융합 및 메 자닌 파일 시스템 컴퓨터 비전 솔루션, Archer 등을 사용하여 이미지를 처리합니다 Netflix 애니메이션 및 N VFX Python이 기본을 형성합니다 모든 애니메이션 Netflix Maya 및 핵에서의 시각 효과 3D 및 2D 컴퓨터 그래픽 응용 프로그램 파이썬을 사용하여 결합되었습니다

자, 앞으로 나아가 자 Netflix가 정보 보안을 위해 Python을 사용하는 방법 Netflix는 python pod 정보 시스템을 사용합니다 자동 치료 보안 자동화 용 위험 분류 등 가장 활발한 오픈 소스 프로젝트 이 팀의 보안 원숭이 Netflix도 축복을 사용합니다 열정을 의미하는 Lambda M Farrell SSH 서비스 안전한 쉘 자원 repo 아이는 그랜트하는 데 사용됩니다 나는 허가이다 TLS 인증서는 보조 정리를 통해 할당됩니다

이 두 가지 작업은 주로 파이썬에 의존합니다 마침내 파이썬이 어떻게 사용되는지 살펴 보겠습니다 모니터링 및 자동 치료를위한 모니터링 자동 치료 팀 또한 통찰력 엔지니어링 팀이 구축 된 것으로 알려져 있습니다 실행 도구 운영 인사이트 진단을위한 '자동 치료 대부분의 서비스를 변경합니다

이 팀은 파이썬을 사용합니다 예를 들어, The Spectator python 클라이언트 라이브러리 이 라이브러리는 크기를 기록하는 데 사용됩니다 Winston과 같은 라이브러리 제품과 함께 타임 시리즈 및 볼트는 또한 Python Frameworks에 내장되어 있습니다 플라스크가 유니콘으로 간다

그리고 플라스크 레스트 플러스 (flush rest)는 쉽게 모든 것을 요약 할 수있다 그 파이썬은 Netflix의 원동력입니다 세션이 끝났습니다 네가 즐기기를 바란다 네가 가진 경우를 대비해서 새로운 것을 배웠다

모든 쿼리 또는 제안 의견 섹션에서 알려 주시기 바랍니다 그리고 나는 당신에게 가장 일찍 되돌아 갈 것이다 잘 가라 이 비디오를 듣고 즐거웠 으면 좋겠습니다

그것을 좋아할 정도로 친절하세요 의심과 검색어에 대해 의견을 말할 수 있습니다 우리는 가장 빠른시기에 그들을 회신 할 것입니다 우리의 재생 목록에서 더 많은 동영상을 찾아보고 구독하십시오 자세한 내용은 Edureka 채널을 참조하십시오

행복한 학습

Serverless Python Applications with Azure Functions – PRE13

>> 안녕하세요 건물 비디오에 오신 것을 환영합니다

Azure 기능이있는 서버가없는 Python 응용 프로그램 오늘, 우리는 Azure 함수가 무엇인지에 대해 이야기 할 것입니다 어떻게 신속하게 사용할 수 있는지 쉽게 파이썬 응용 프로그램을 빌드하고, 몇 가지 일반적인 사용 사례가 있습니다 이제 시작하고 시작하겠습니다 익숙하지 않은 사람들을 위해, Azure Functions는 서버리스 플랫폼으로서 클라우드에서 온 디맨드 및 온 스케일로 커스텀 코드에 액세스 할 수 있습니다

당신은 HTTP, 타이머 일정, 이벤트 Azure 스토리지 또는 이벤트 또는 메시징 시스템 기능은 향상된 개발자 경험을 제공합니다 당신이 개발하고, 디버깅 및 테스트 기능 Visual Studio Code와 같은 익숙한 코드를 사용합니다 오늘, 우리는 Azure 함수에서 새로 도입 된 Python 지원 파이썬 함수가 어떤 모습인지 살펴보기 위해, 데모로 바로 뛰어 들자

여기에서 나는 나의 Mac에서 Visual Studio 코드를 사용하고 있는데, 이미 Azure 함수 확장이 설치되어 있습니다 파이썬 함수를 개발하기위한 전제 조건으로, 또한 Python 확장을 설치했습니다 에 대한 함수 확장 Azure는 익숙한 커맨드 릿을 제공합니다 파이썬 함수 프로젝트를 둘러 볼 수 있습니다 그래서 첫 걸음으로, 새 프로젝트를 만들어 보겠습니다

함수 확장은 당신에게 물어볼 것입니다 프로젝트 디렉토리를 선택하려면, 그런 다음 함수 앱용 언어를 선택하십시오 파이썬을 함수 앱용 언어로 선택하겠습니다 일단 우리가 그걸 끝내면, 다음 단계는 앞으로 나아갈 것입니다 귀하의 기능에 대한 트리거를 선택하십시오

이 메뉴에서 볼 수 있듯이, 기능은 HTTP, Azure Storage, Cosmos DB, 이벤트 그리드 서비스 버스, 심지어 타이머 일정 이 예의 목적을 위해, HTTP 트리거를 선택해 보겠습니다 그것을 친근한 이름으로 제공하고, 그리고 우리의 HTTP 엔드 포인트에 대한 인증 수준 이것이 무엇을했는지는 앞으로 나아갔습니다 VS 코드에서 새로운 기능 프로젝트를 만들었습니다

함수 프로젝트는 Azure의 함수 app와 유사합니다 여러 함수를 포함 할 수 있습니다 동일한 호스팅 구성을 공유하는 로컬 실행 구성 및 심지어 코드간에 공유 된 의존성 VS 코드가 이미 채워져 있습니다 우리를위한 HTTP 트리거 기능, 몇 가지 다른 파일이 들어 있습니다

먼저 JSON 함수에 대해 말씀 드리겠습니다 이것은 당신이 정의하는 JSON 설정입니다 역할을하는 스크립트 파일 함수 실행을위한 진입 점, 함수에 의해 사용되는 모든 트리거 및 바인딩이 포함됩니다 각 바인딩에는 바인딩 유형, 방향이 포함됩니다 따라서 입력 또는 출력 바인딩 이건간에, 우리가 사용할 이름 우리 함수 코드 내의 바인딩 데이터를 참조하십시오

이제 스크립트 파일로 전환하여 실제로 우리 함수가 어떻게 보이는지 봅니다 여기에 주요 방법이 있습니다 이 주요 방법은 다음과 같은 역할을합니다 함수 실행을위한 엔트리 포인트 HTTP 요청 가져 오기가 필요합니다

이는 JSON 함수에서 정의한 입력 바인딩이었습니다 HTTP 응답으로 출력합니다 주된 방법은 로그를 작성하는 데 사용할 수있는 루트 로고 실행시 응용 프로그램 통찰력 로컬에서 실행될 때 Azure를 로컬 콘솔에 설치하십시오 이것은 당신의 기능을위한 Hello World 템플릿이므로, 이 함수는 쿼리 문자열에서 name 매개 변수를 가져옵니다 함수에서 HTTP 응답으로 출력 할 수 있습니다

Azure 함수는 완전히 오픈 소스이기 때문에, 우리는 계속 나아갈 수있다 이 기능 프로젝트는 여기 내 컴퓨터에 로컬로 있습니다 이를 위해 VS 코드로 F5를 실행하고, 그러면 함수 런타임이 시작되고, 언어 작업자 프로세스, 마지막으로 로컬 컴퓨터에서 함수 앱을 호스팅하기 시작합니다 우리가 파이썬을 설치 한 이래로 확장 기능을 활용하면 파이썬 확장자 인 디버거 Azure 함수 프로세스에 연결하도록 제공합니다 그래서 실제 함수를 호출 할 때, 우리는 호출 스택을 디버그하고 조사 할 수 있습니다

그게 전부 야 다음은 구축 할 수있는 몇 가지 시나리오입니다 Azure 함수에서 파이썬 사용하기 맨 처음은 서버가없는 API 또는 백엔드입니다 이것을 건물과 비슷하게 생각하십시오

파이썬 응용 프로그램을위한 플래시 군중 Azure 함수에서 HTTP 트리거를 사용하여 빌드 할 수 있습니다 Cosmos DB 백엔드에 대한 REST 엔드 포인트 두 번째는 데이터 처리 및 기계 학습 작업량입니다 훈련 된 모델과 채점 스트립을 다음과 같이 패키지화 할 수 있습니다

귀하의 기능 응용 프로그램 serverless 추론 서비스를 만듭니다 마지막으로 자동화 작업 부하는 Azure에 대한 자원 정리 및 관리 서비스 그것으로 우리는 첫 번째 파이썬 함수를 빌드하는 비디오 오늘 시작하려면 화면의 일명 MS 링크를 따르십시오 감사합니다 훌륭한 Microsoft Build 2019

Building Python Web Applications with Visual Studio Code Docker and Azure – BRK3020

>> 안녕, 누구나 환영해라 나는 단 테일러, 나는 주된 파이프 라인이야

MICROSOFT의 개발자 이것은 내 좋아하는 일 중 하나 나는 천천히시와 시간을 보낸다 기술력과 함께 우리의 최신 기능을 사용하여 도구 그리고 나는 여기에 온다

모든 주요 사항을 보여주십시오 약간 우리는 기술을 사용할거야 오늘이 대화에서, 코스, IS 믿을 수 없을 정도로 인기가 많은 PYTHON, 41 개발자가 IT를 사용합니다 잘 웹 개발

OF OF 52 PYTHON 개발자는 웹 개발 우리는 조금만 할 것입니다 그것이 있기 때문에 기계 학습 잘 사용하여 피스톤의 사용 에이 많은 사람들이이 두 가지 기술을 사용합니다 함께하는 사람이 많이 출근합니다

기계 학습 글 리플 그럼 그 사람들을 안으로 데려다주고 싶어 API와 그 용도의 피스톤 또는 웹 응용 프로그램을 만들 수 있습니다 기계 학습을 추가하고 싶습니다 IT 부서에 우리는 작은 것을 혼합 할거야

이의 웹 프레임 워크의 조건 우리는 모두 DJANGO와 THEY를 사용하게 될거야 진실한 TDLEFO 백 엔드입니다 우리는 약간의 반응을 할 것입니다 놀랍게도 네가 필요로하는 앞자리가 필요하다면

자바 스크립트와 그 기술 많이 인기가 있습니다 그리고 우리는 약간의 포스트를 볼 것입니다 GRES 가상 환경의 비트 (BIT)와 가상 환경 (BIRTUAL ENVIRONMENTS) 그들은 당신의 패키지를 분리 할 수있는 방법입니다 그리고 의존

아주 인기있는 도구 PYTHON 개발자가 사용합니다 또한 도커 사용 된 아주 일반적인 기술 피스톤 퇴적물로 DOCKER WAS 조명이 새겨진 유형으로 처음 발표되었습니다 PYCON

그것은 그리스에서 나온다 공동체 우리는 기술을 연마 할거야 시각적 인 스튜디오 코드 사용 만약 너라면 시각적 스튜디오와 친숙하지 않다

코드, 개방형 무료 플랫폼 자료 편집자, 그것의 빠르고 가벼운 무게, 위대한 확장과 지원 여러 언어로 사실은 자바에 대한 지원이 내장되어있다 지성과 같은 성서 디버깅 및 코스 제어 나의 팀은 그 피스톤 확장을 구축 위대한 능력을 제공합니다 그만큼 PYTHON EXTENSIONS에 대한 지원 추가 IntelliSense와 같은 많은 것들이 필요합니다

디버깅 가상화에 대한 지원 환경 및 기타 환경 시인처럼, 시선이 좋은 곳 그 목록에 추가되었습니다 형식 규정 WINTER LINTERS와 (과) 같은 것이 있습니다 가장 인기있는 확장 기능 시각적 인 스튜디오 코드 시장 사실 나는 최근에 가끔씩 아주 행복하게 지낸다

시각적 인 스튜디오 코드는 지금이다 피스톤 퇴적 기가 사용하는 3 가지 공구 2018 년 개발업자 설문 조사 우리 우리가하고있는 일에 대해 압도적입니다 피톤과 더 많은 정보 새로운 시각적 인 스튜디오 코드 원격 우리가 단지 개발 한 기능 이번 주를 알렸다

그건 정말 내가 콘테이너를 포함하고있는 이유는 무엇입니까? 이 말에 우리는 새로운 기능을 발표했다 당신이 개발자로 일할 수있는 한 및 작업 공간 및 환경 당신은 분리하여 내일 일할 수 없습니다 모든 시각적 스튜디오 코드 UI 맨 끝에있는 확장 비주얼 스튜디오 코드 개발 경험 내부 개발을 허용합니다

콘테이너 또는 원격 연결 이상 개발 경험을 얻으십시오 너의 지역 개발처럼 경험 그래서 우리는 보내질거야 오늘 그 때 ALL PUTTING 이 사람과 우리가 할 일 건물은 신청서입니다

첫번째 우리는 합의 분석을하겠다 파이썬 라이브러리를 사용한 스크래치로부터의 API 우리는 웹 애플리케이션에이를 배포 할 것입니다 그러면 우리는 풀 스탁 DJANGO를 추가 할 것입니다 반응 및 배치와 함께 콘테이너를위한 AZ 웹 웹 어플리케이션에

우리가 간략히 간다 마지막 몇 분 AZURE PIPELINE을 설정하는 방법을 통해 GitHub에서 푸시하고 푸시하려면 IT 숙달 THE FIRST PART, 내가 말했듯이, 우리는 약간의 안녕을 할거야 VS 코드로 시작하는 세계 API를 작성하고 배포하십시오 그런 다음 새로운 원격 사용을 통해 이동하십시오 DEV 컨테이너

우리는 기존의 것을 열어 줄거야 GitHub에서 배포자 컨테이너 배포 그 내가 설정하는 것을 좋아하는 것 CI / CD와 DOCKER 배포 처음부터 시작하겠습니다 부품

그걸로 충분 해 나를 데모에 빠지기를 좋아합니다 FLARVEG에있는 건물 API 나 THRIBEG 명령 지배자로부터 시작되었습니다

내가 VS 코드를 설치했다고 가정하고, 이것은 내가 개발하고 싶어하는 것입니다 사용 중 코드 라인은 여기에 있습니다 우리는 우리의 새로운 폴더를 만들 것입니다 API 나는 모든 것을 기억할 수 있기를 희망한다

암호 도구가 나를 도와 줄 것입니다 그곳에 여기에는 아무 것도 없습니다 시작하려면, 나는 타입 스페이스 도트를 입력 할 수있다 시각적 인 스튜디오 코드를 공개합니다

커맨드 라인과 오픈이 VISUAL STUDIO CODE의 폴더 만약 너는 명령에서 열지 않았다 LINE, 클릭하여 열 수 있습니다 열려있는 폴더 또는 파일 열기 폴더 내부에서 일반적으로 잘 작동합니다

당신이 저장할 수 있기 때문에 폴더의 다양한 설정, 이해 수입이 저쪽에있는 곳 한 번에 하나씩 일해라 첫번째 RT에서 시작할 수 있습니다 피스톤 린크를 클릭하십시오 피스톤 익스텐션에 연결 그래서 너는 그것으로부터 설치할 수있다

시장 나는 그것을 설치해야한다 하나는 여기에 전화하고 싶습니다 시작하기에 좋은 빠른 시작이 있습니다 확장, 그냥 보여줄 방법 가서 가상을 설정하십시오

환경, 프로 팁 클릭하십시오 PYTHON 버전 및 상태 표시 줄 그것은 매우 유용합니다 IT 연결 해제 더 많은 것을 원하면 우리의 자습서 기능을 탐구하는 데 깊이 너 내 계시를보고있어, 이거야

당신을위한 교훈입니다 괜찮아, 내가 시작하게 될 바늘로 시작하라 새로운 파일을 엽니 다 우리는 이걸 부를거야 HELLO DOT PY

나가서 곧 파일이 그 필통을 활성화시킨다 신장 당신이 보지 않는 경우 VS 코드의 피스톤 기능 PYTHON 파일을 열어야합니다 그렇지 않으면 우리는 당신이 함께 일하기를 원하지 않는다 피톤

한 번 나는 활액을 활성화합니다 확장, 나는 안으로 들어 가려고 노력할 것이다 이리 내가 할 수있는 타입, 안녕하세요 세계, 나 저장 가능 오른쪽 클릭하고 말하기, 터미널에서 파일을 실행하십시오

그 HELLO WORLD가 실행됩니다 괜찮아 그게 다야 PYTHON VS로 코드를 작성하는 법 코드 피스톤 확장 나는 사용할 것이다

– 나는 나의 감동을 시작하기 시작할 것이다 분석 API는 여기에 있습니다 그 일을하기 위해서 텍스트 블로그 패키지가 필요합니다 제가 할수 있어요 그 명령으로 가라 LINE SAYING PIP INSTALL 텍스트 BLOB

그 부양책을 설치할 수 있습니다 내 기계가 상충 될 수 있습니다 번역 나는 가상을 창조하고 싶다 이 애플리케이션의 환경 모든 패키지를 담을 것입니다

당장 할 수있어 가상 환경 만들기 나는 PY-3을 WINDOWS에서 사용하게 될 것입니다 이것은 내가 뛰고있는 것을 보장합니다 PYTHON 3

PYTHON이 없다면 톱 타입 파이에, 그것은 줄 것이다 너 피 뇽 나는 PY-3-M을 달릴 것이다 모듈을 실행하십시오 그럼 내가 통과 할거야

내가 만들고 싶다는 의구심 그 환경 너도 볼 수있어 VS 코드는 잘했다 이 가상 환경을 사용하고 싶습니다 너의 작업 공간을 위해? 우리가 선택할 수 있습니다

예 상태가 변경됩니다 바 (Bar), 가상 환경 (VIRTUAL ENVIRONMENTMENT) 그 에 의해 사용 된 활동 해석 자 VS 코드 그걸 클릭하면됩니다

그것을 변경하십시오 나는 다른 버전이있다 내 컴퓨터에 설치되었습니다 활성화 터미널의 가상 환경, 나는 스크립트를 활성화 할 수 있습니다 그때 피스톤을 말하면, 당신이 볼 수 있습니다

이걸로 뽑아 낸 피엘츠 가상 환경 또한, 한 번 내가 만든다면 나는이 활동을 해왔다 새로운 터미널이 활성화 될 것입니다 커맨드 라인을위한 스크립트 당신 우리가 가질 수있는 말

그만큼 이 가상 키를 얻는 열쇠 VS 코드에서 선택된 환경 그럼 네가 할 수있는 일이야 내가 원한 텍스트 BLOB 패키지 설치하기 쓰다 한번 나는 그 패키지를 설치합니다 일부 패키지를 꺼내야합니다 이것은 계속됩니다

이것은 쓰레기입니다 국가 별 언어 도구 키트 미국과 함께 놀기 시작할 수있는 곳 몇 가지 자연 언어 지금 나는 텍스트를 가져올 수있다 에일 텍스트 BLOB 가져 오기 텍스트 나는 얻다 내가 여기 쓰는대로 자동 완성 내 코드

쓰기 "이것은 놀랍습니다 그리고 그것이 어울리는 것을 보아라 나는 결과를 볼 수 있습니다 나는 선택할 수있다 텍스트의이 부분과 Shift Shift-Enter를 누르십시오

지금 그것은 새로운 피스톤을 안으로 열 것이다 내 터미널 및 실행 부분 암호 너는 볼 수있어 "이 놀랍다 "멋지다 할 수있다

거기에 그곳에 그분의 증언을 추가하십시오 그것 POE 극성을 제공합니다 그건 부정적인 심판 나는 생각한다 이 감정을 사용하는 방법을 알아 냈습니다

분석 도서관 준비하라 FLASK API이므로 전화를 걸 수 있습니다 외부 웹 서버 및 제출 메시지를 보내고 메시지를 받으십시오 여기로

새로운 플라스크를 만들어 보자 APP는 APP DOT PY 이것이 다른 용도의 평판 용 평판 용 구성을 설정해야합니다 나는 스 니펫을 사용하는 방법을 보여주고 싶다 내가 전화를 추가하려면 스 니펫이 있어야 해

앱 보도 자료 탭과 그 생성 나에게 새로운 어플 리케이션 그건 단지 몇 줄의 코드 너는 정의 할 수있어 귀하의 스 니펫은 파일 환경 설정, EGG 스니펫 사용

그곳에 너 할 수있어 그것들을 분석하십시오 나는 기초가있다 거기에 사과를 뿌려 라

내가 원한다면 이것을 실행하십시오 – 가자 나는 달려 간다 나는 지금 간다 서버에서 로컬로 실행 – 숙주 나는 이것을 통제 할 수있다

안녕, 우주 우리는 만족하지 못한다 안녕하세요 우리 가야 되 더 크게 이것은 작동 중입니다

뒤로 우리의 텍스트 BLOB 패키지 보자 이 코드를 평면 APP로 가져 오십시오 아무 것도 찍지 않고 대신 우리 메시지를 가져올 수 있습니다 너 어떻게 생각해? 매개 변수를 정의하십시오

IT는 그만 두자 API에 들어가서 가져 오기를 이동하십시오 맨 위로 전환 탭 지금은 우리 이 API가이를 분석하도록 원하십니까? 메시지

나는 많은 것을 복사 / 붙여 넣기한다 소유 코드 어떻게 해야할지 그 고백을 가정함으로써 시작하자 IS POS입니다

양 항상 상연한다 우리가 데이터를 가지고 있지 않으면 포지셔닝 그 밖의 것을 나타내십시오 통행료 전표 그 감동에 극성 인 경우 제로보다 적습니다

그러면 감옥에요 부정입니다 그 고소를 되찾자 API로부터 CONTROL-C

우리는 뛰다 그 다시 지금 우리는 말할 수 있어요 놀랍다 우리는 우리의 감정을 가지고 있습니다

플라스 크에 서술 된 분석 API 훌륭한 그럼 이제 가야겠다 API를 사용하여 사용할 수있게되었습니다 세계

그래서 우리는 그것을 할 수 있습니다 AZURE CO의 새로운 기능 I, IT는 당신을 설치합니다 IT가 오랜 시간 동안 찾을 수 있습니다 MICROSOFT WEBSITE

RUN AZ-N AND 이 건물 감정 나는 그것을 실행한다 명령 IT가 이걸 가져올거야 – 나 한 번만 잊으십시오 그래서 나는 할 수있다

내 요구 사항을 고정해야합니다 요구 사항 TXT 파일에 나는 조종석을 정지시키고 모든 것을 얻는다 내가 함께 사용하는 패키지 그 정확한 버전 번호 내가 배포 할 때 보증 됨 일하다 나는 쉽게 웹 앱을 실행한다

이 AZ 웹 앱을 배포합니다 그것 요구 사항 설정 TXT 사용 파일 코드는 코드를 압축합니다 그때 서비스 측면에서 IT가 설치됩니다 요구 사항에서 발견 된 패키지 DOT TXT FILE

이것은 약간의 시간이 걸릴 것입니다 그 일이 진행되는 동안, 나는 가고있다 우리가 말한 것에 대한 빠른 회신을하려면 약 빨리 만회하십시오 우리가 만든 새로운 파일

우리는 터미널에서 파일을 찾습니다 그런 다음 우리는 SHIFT-ENTER를 사용하여 실행했습니다 선택과 가상 만들기 환경 사용 팁 가상 환경 지시 사항 MAC과 WINDOWS는 다릅니다

그래서 당신은 PY-6 AND ON을 사용합니다 MAC 및 Linux 사용 – 내가 할게 너가 원한다면 그걸 바라 보아라 패키지를 설치하려면 PIP 설치를 사용하십시오 – R DOT TXT 나가기위한 업데이트 실행을 중지하십시오

나는 가상 환경을 사용했다 비주얼 스튜디오 코드 포함 우리는지지한다 지압 및 기타 그리고 나서 우리는 AZ를 만난다 WEB APP UP

AZURE WEB APPS, 이쪽 리눅스 용 DEPLOYS 원하는 경우 웹 응용 프로그램 무료 제공 가능 – 현재로서는 GA가 있습니다 PYTHON을위한 서비스 너는 하나있어 무료 TIER, 하나의 무료 B 1 인스턴스 귀하의 구독에서

나를 보냅시다 여기로 순간을 가져 가고 있어요 내 API 용 그냥 끝났다

나는 이 시간이 훨씬 빨라졌습니다 우리는 말을 끝내었다 그것은 지켜졌다 AZ 웹 사이트 그물

너 할 수있어 여기까지 오세요 이것은 놀랄 만한 너무 많이하지 마세요 굉장한

우리가하고 싶은 것은 하나이다 우리가 원하는대로 이동하기 전에 신청서를 다른 사람에게 제공하십시오 신청서 우리는 가능하게하고 싶어한다 크로스 – 오 랜 사이트가 호출됩니다 보자

포탈에 가거나 가져 가라 봐 이 APP로 인해 DASAULT 이 APP 서비스 리눅스에 종속됨 자원 그룹 당신이 친숙하지 않다면 리소스 그룹 그것은 폴더 다

귀하의 리소스를 포함합니다 AZURE, 그래서 당신은 그룹과 관련된 수 있습니다 토탈 자원 아즈 업 명령 처음에는 하나를 골랐어 요 그래서 거기 APP가 달린 APP입니다

에 그런 다음 크로스 콜을 가능하게합니다 우리가 시작합니다 어떤 웹 사이트 수 이 API를 얻지 않고 전화하세요 브라우저에서 오류가 발생했습니다

히트 SAVE 미국은 약간의 시간을 절약 할 것입니다 잠시 후 지금 이야기하기 콘테이너를 사용하여 개발하기 같이 나는 언급했다, 우리는 새로운 리모컨을 가지고있다

허용되는 콘테이너 확장 대단한 용기있는 개발을위한 미국 왜 우리가 그걸하고 싶어할까요? 그곳에 다른 이유의 커플입니다 시작하는 것에 대해 생각한다면 원하는 경우 회사에서 수행하십시오 새로운 개발자를 시작하려면 팀 모두를 통해 걸어보세요

시작 가이드 시작하기 일반적으로 첫 번째 행동 중 하나 깨진 지시 사항을 수정하기 위해 업데이트하십시오 당신에게 포함 된 개발이있는 경우 당신이 정의 할 수있는 환경 당신이 필요로하는 모든 것들 패키지, 모든 도구 및 그게 거짓말이야 IT의 극한화 너는 갈 시간을 보내라 다른 것들은 많이 있습니다

사람들은 많은 것을 설치하는 것을 좋아하지 않습니다 그들의 기계에 대한 의존성 문제가 발생할 수 있거나 그게 맘에 든다 컨테이너 수 있습니다 귀하의 장치에 대한 의존을 최소화하십시오 기계

고용, 그것은 생산 작업 그래서, 유일한 아래쪽 – 메인 아래쪽 환경을 이용한 공구 작업 도전이 될 수 있습니다 귀하의 코드는 콘테이너에서 지능을 얻는 방법 내가 언급했듯이, 당신은 UI가 귀하의 지역 머신에서 실행됩니다

왼쪽에 내부에 서버가 있습니다 당신이 뛰는 콘테이너의 확장 그것의 일부를 실행합니다 파일 시스템

IT 부서와 다른 사람들과 대화 할 수 있습니다 옆으로 펼쳐지는 콘테이너 당신 용기 운반선 그래서 이걸 허용해라 당신은 그 사용자 인터페이스를 얻으려고합니다 개발과 같은 느낌

당신의 로컬 랩탑에서 해 보자 우리가 만드는 앱 그냥 보자 즉시 내부를 재건하십시오 DEV 컨테이너

이것은 우리가 어디에서 왔는가? 왼쪽 꺼짐 우리는 우리의 앱을 가지고있었습니다 감정 분석 API 만약 내가 원한다면 여기에 DEV 물품 보관함을 추가하려면 – VS 코드 내부자로 전환해야합니다 이것이 단지 이용 가능하기 때문에 내부자 제 판

암호 내부자는 별도의 측면입니다 VS 코드 설치, 일상 개발 짓다 이것은 A에서 사용할 수 있습니다 몇 주 여기에 내가 가지고있다 원격 콘테이너 확장 설치됨

이 작은 게 나에게주는거야 왼손 모서리에있는 버튼 "리모콘 창을 열어" 나는이 메뉴를 얻는다 나는 선택하고 싶어한다 CONTAINER CONFIGURATION FILE

이 우리가 한 뭉치를 피할 수 있도록 허용 템플레이트 나는 선택을 원한다 3 그리고 여기를 보시면 파일의 무리를 만듭니다 나는 JSON, DOCKER 파일 및 개방 된 경우 – 표준이됩니다

인스톨 요구 사항과 같은 것들 콘테이너에있는 TXT의 하나 우리가 열기 전에, 나는 명시하고 싶다 내 출력은 5, 000이기 때문에 항만 항해 신청서 에 나는이 폴더를 다시 열어도 좋다 이 컨테이너에서 생성 할 것입니다

새로운 스튜디오의 영상 스튜디오 암호 그게 도커를 만들거야 컨테이너 그것은 VS를 설치합니다 코드 서버가 설치됩니다

장치에 지정된 확장 콘테이너 점 JSON, 그때 그것은 저에게 개발 환경을주십시오 우리는 도커 구축 명령을 보았습니다 이 하나는 바늘 위에 쌓아 둔다 3 이미지 나는 작은 털을 만들면 그것은 모든 것을 되 살릴 필요가 없습니다

할퀴다 캐시 계층을 사용할 수 있습니다 그곳에 나는 추측하고있다 – 나는 몰라 그것이 의미하는 것

HOPEFULLY 나는하지 않는다 도커 오류가 있습니다 해 보자 콘테이너가 실행 중인지 확인하십시오 여기 내 컴퓨터에 괜찮아

그게 다야 이상한 알았어, 그게 물감 이었어 그래서 지금은이 안에 열렸습니다 개발 컨테이너

지금 나는 할 수있다 내 파일을보십시오 파일을 열 때, 나는 그들을 현지에서 편집하지 않고있다 콘테이너에서 편집하기 만약 나는 내 통역을 선택한다

나는 PYTHON ENTERTAINERS, LOCAL로 간다 사용, 빈 등 , 등 내가 여는 경우 터미널, 나는 터미널을 안으로 가져 간다 콘테이너의

그래서 내가 LS라면, 나에게는 개발 환경이있다 나는 사용할 수있다 내 IntelliSense를 얻은 경우 디버깅 및 모든 내용 콘테이너와 함께 나옵니다 콘테이너의 안녕 세계가 있었다 무언가를 조금 움직여 라

더 복잡한 빨리 만회하십시오 이 일을하기 위해 우리는 코드 내부자를 만난다 그것 때문에 내부자 우리가 열어

CONTROL-SHIFT를 사용하는 명령 팔레트 P 우리는 포트 5, 000을 추가 한 다음 콘테이너를 접었습니다 무언가를 넘어서 스위치를 놓으십시오 조금만 더 복잡합니다 그 ARJIANGER와 – 우리의 DJANGO AND 반응기

이것은 신선합니다 클론, 나는 그만 둔다 예열 오픈 코드 내부자를 사용하는 것 이 정의 더 복잡한 개발이 필요하다 환경

이 환경에서 일하기 나는 어떤 것도 필요하지 않다 도커 이외 이 정의 우리가 원하는 여러 용기 시작한다 우리가 도커 안에서 사용한다면 COMPOSE FILE, 나는 옆으로 쓸거야 사이드 탭

여기에는 APP가 포함되어 있습니다 용기는 물론 데이터베이스 POST GRES를 담고있는 콘테이너 IT IT에는 PYTHON이 들어 있습니다 그런 다음 포스트 데이터베이스 파일 언젠가는 나타날 것입니다

그건 멋지고 빠릅니다 다시 일하고 있어요 이 파일들 모두 안에 APP CONTAINER의 내가 창조하면 새로운 터미널, 나는 MPN을 사용할 수 있습니다 나는 나에게 설치된 노드가 필요 없다 기계

나는 MPN 설치를 말할 수 있습니다 내 전방 끝을 쌓을 수 있습니다 이것은 정말 멋진 나는 나의 DJANGO를 시작할 수있다 여기에 웹 사이트를 보내서 MANY PY – 내가 시작하면 – 필요해

내 DJANGO 웹 서버가 알려줄 것입니다 내가 가지고 있지 않기 때문에 나에겐 오류가있다 내 데이터베이스를 설정하십시오 나는 말할 수있다 PYTHON이 (가) 돼지를 관리하면 이민

DJANGO가있는 곳은 어디입니까? 귀하는 귀하의 모든 데이터를 모델, 그럼 데이터베이스를 만듭니다 그것을 통해서 DJANGO 이적을 실행하다 명령을 사용하면 해당 모델이 적용됩니다 데이터베이스 테이블 생성 그들

그런 다음 초기 데이터를로드 할 수 있습니다 이리 내가 타이핑하고있어, 의사 소통을하고있어 콘테이너의 서버에 모든 UI로 돌아 가기 메시지

작동하는 모든 것 자동으로 피스톤 확장 여기에서 작동합니다 지금 내가 관리 할 수있어 피 서버 여기에 흥미 진진한 점 이것은 IP 주소 다음에 있습니다

내 코드가 실행되기 때문에 콘테이너의 내부 나는 본다 P 주소, 당신이 원하는 곳으로, 로컬 홈에 바인딩하는 경우 업데이트 연결 가능 외부 침입자로부터 지금 우리가 여기에 와서 이야기한다면 LOCAL HOST 8000

우리는이 아름다운 것을 얻습니다 그저 일하는 신청서 나는 가지고있다 내 다른 사람에게이 일을 전한다 팀과 같은 단계를 따르십시오 동일한 신청서를 모두 받으십시오

한 번 트위트를 추가합시다 나는 이것이 놀라워하고 있다고 말하고있다 만약 우리는 작동하지 않았으며, 왜 작동하지 않았는가? 나는 반드시 로그인해야한다고 말합니다 나는하지 않는다

로그인하고 싶으면 우리가 보자 우리가 할 수 있으면 이것을 디버그해서 볼 수 있습니다 우리가 할 수있는 기본 사용자가있다 데모 신청서와 함께 최소한의 목적 그래서 디버깅을 시작하려면, 나는 데브 탭으로 이동할 것입니다

나는 디버그를 추가하고 싶습니다 이것은 사실이다 아주 똑바로 내가 선택 추가 CONFIGURATION, 나는 DJANGO를 선택한다 그러면 표준이 생성됩니다

DJANGO DEBUG 나는 수정할 필요가 없다 여기 아무 데나 우리는 게임을 클릭 할 수 있습니다 디버거를 시작할 것입니다

그래서 지금 내 응용 프로그램을 디버깅 중입니다 천천히 휴식을 취하십시오 포인트 나는 어디에서나 나와야한다

중단 점을 설정하려면 내가 맞으면 CONTROL-P, 나는 훑어 볼 수있다 내 작업 파일, 나는 사용할 수있다 파일 나는 모두를보기 위해 기수를 누를 수있다

내 직업에 종사하는 사람들 – 상징 예를 들어 나의 일터에 만약 내가 찾고 싶다 – 찾는다 WITH USER 저기로가요 만약 너라면 여기 아래로 스크롤하십시오

우리는 트위 트를 만듭니다 내가 원한다면 이 파일의 다른 기호를보고, 나는 나를 받아 들일 수있다 문자를 기호로 바꾸기 파일 차가운 항해가 있습니다 우리가 할 수있는 일들

내가 설정하고 싶다면 중단 지점, 가볍게 누르십시오 왼쪽면에 빨간 점이 있습니다 시험 다시 클릭 트위트 우리는 히트 중단 지점 보자

우리는 여기에 사용자 객체를 사용할 수 있습니다 디버그 콘솔을 열어 보겠습니다 지금이 물건을 가지고 POKING을 시작합니다 자기 점 청구 나는 자동 완성을 얻는다

내 콘솔에서, 내가 할 수있는 것처럼, 나는 할 수있다 콘솔에 대한 TYPE 표현 변수를 확장하면 볼 수 있습니다 이 경우에 이것은 진실입니다 우리가 표준을 따를 수 있다면 보자 사용자

잘하면 얻을 수 있을까요? 기본 사용자 인 밥도 할 수 있어요 QUERY TO EXPERESSION을 써서 데이타베이스 그래서 나는 사용자 점 대상을 말할 수있다 도트 필터 첫 번째 이름은 BOB와 동일합니다 우리는 먼저 그것을 놓을 것입니다

내가 누르면 거기에 들어가서 다시 보게 될 것입니다 우리의 사용자 밥 괜찮아 보자 우리는 대신에이 결정자를 되돌릴 수 있습니다

중지를 누르십시오 높은 해상도 나는 그 자체로 예술이다 사용자 인 경우 ANONYMOUS, 그렇다면 당신은 말할 수 있습니다 사용자 점 개체 돌아 가자

터미널 및 실행하십시오 보자 우리가 할 수있는 경우에 – 지금 TWEET을 할 수 있습니다 내 신청서에서 재밌다

내가 언급 한대로, 나는 시작했다 우리의 앞면을 짓는 MPN 스크립트 종료 이것은 시계 모드에서 실행 중입니다 자바 스크립트 편집을 시작할 수 있습니다 콘테이너 안에 넣고 가져와 반응하는 개발 도구

내가 훑어 보는 경우 파일을 통해 갈 수 있습니다 TWEETS CONTROL-P로 가보자 우리가 그 성찬을 덧붙일 수 있는지 보아라 신청서에 대한 API 나는 갔어

여기에는 반역적인 구성 요소가있다 그것이하는 것이 무엇이든, 당신은 그것을 텍스트로 전달합니다 구성 요소가 T를로드 할 때 API 호출하기 API 호출하기 그냥 지어 라 IT가 갈 때 – 우리는 긍정적이고 부정적인 것을 되 찾으십시오 감정

그런 다음 응답받을 때 그것은 그 심판을 통해 표현 될 것입니다 여기 HTML 코드로 이동하면, 우리는이 감성 구성 요소를 추가 할 수 있습니다 내 반응 자동 완성을 얻고 있습니다 이리 대단한 것들 중 하나 VS 코드는 훌륭한 지원을 위해 여러 언어

나는 말할 수있어 그 텍스트 저장을 누르십시오 나는 갈 수있다 여기와 히트가 새로워졌습니다

그 다음엔 SENTIMENT API CALLS가 있습니다 과 그럼 우리 GO-TO로 돌아 가자 대시 모든 일 그게 다야

시원한 지금 몇 가지 검사를 시작하십시오 그래서 나는 정의 된 검사를 받았다 이 시험에서의이 시험에서 PY FILE 구성하고 싶다면 VS 코드, CONTROL-SHIFT 사용 가능 P 명령을 실행하고 PYTHON을 (를) 말하십시오

시험을 구성하십시오 이 테스트가 있습니다 파이 테스트 프레임 워크를 사용하여 빌드하십시오 그들은 TWEETER 폴더에 있습니다 테스트 한 HEREN을 초기화 할 것입니다

나는 멋진 코드 렌즈를 얻는다 제가 할수 있어요 전체 테스트 클래스 또는 디버그 실행 시험 나는 새로운 시험 탐험가를 얻는다 우리가 VS 코드를 어디에 추가했는지 미리보기에서 내 시험을 모두 볼 수 있습니다 또는 나는 한 번에 하나씩 실행할 수 있습니다

나는이 모든 것을이 곳에서 실행하고있다 포함 된 개발 환경 그래서 나는 완벽하게 생산적 일 수있다 이리 나는 그것이 주된 것이라고 생각한다

열리는 빠른 여행이었습니다 내부에 존재하는 응용 프로그램 그것으로 작업하는 DEV 컨테이너 기능의 뭉치를 사용하여 에 우리는 열린 폴더를 CONTAINER COMMAND A가있는 경우 DEV 컨테이너 폴더 및 그 후에 우리는 새로운 터미널을 열었습니다 우리가 설치했다

– 앞쪽의 노드 모듈 두 번째 단자가 열리고 데이터베이스가 초기화되었습니다 우리 서버를 운영하십시오 우리는 DJANGO를 추가했습니다 디버그 이 집에서 너는 피톤 쇼를 보지 마라

열다 PYTHON 파일을 먼저주고 당신에게 줄 것입니다 귀하의 디버그 구성 옵션 우리는 콘솔을 사용하여 변수를 검사했습니다 우리는 약간의 코드 네비게이션을 수행했습니다 파일, 심볼, 그리고 BUZZ AROUND

그 때 우리는 구성했다 우리의 시험 한 번 우리는 시험, 우리는 시험 탐험가를 사용할 수있다 그리고 우리의 코드 그것은 우리의 발전이었습니다 컨테이너

흥미로운 것 개발 컨테이너에 대해, 당신의 파일들이 거기에 있습니다 나는 그렇다 MISSISSAUGAING 내부의 변화 컨테이너, 밖에서 사용할 수 있었다 컨테이너만큼 언제 당신은 생산을위한 용기를 만들고, 너는 너의 파일을 모두 복사하고 싶다

거기에 생산을 원한다 웹 서버 우리는 생산을 필요로합니다 이 응용 프로그램의 버전

보자 우리가 그걸 어떻게하면 좋겠어? 그래서 내가 원하는 첫 번째 이 장치 컨테이너에서 나옵니다 방법 나는 클릭하고 다시 열 수있다 DEV를 벗어날 수있는 지역별 팀 컨테이너를 열고 정상적으로 열어 라

이전 버전의 데스크탑을 지루하게 여는 중 신청서 내 사물함을 열면 여기를 확장하면 다양한 것을 볼 수 있습니다 컨테이너 나는 이걸 멈추고 싶다 우리는 내가 사용하는 포트를 쓸거야

사용하고 싶다 나는 멈출 수 없다 "ALL CONTAINERS"를 선택하십시오 그만하십시오

나는 도커 파일을 가지고있다 내 DIS 장치 용기입니다 나에게 도커 파일을 추가하고 싶다 MAIN WORKSPACE SHOW I CAN BUILD 내가 원하는이 더커 컨테이너 이 앱을 배포하려면 나는 뛸거야 다른 명령 및 선택 도커 – DOCKER 파일을 작업 공간에 추가하십시오 나는 모든 망각자를 결코 기억할 수 없다

내 머리 꼭대기에서 물건을 지우십시오 이 미리 정의 된 것을 가지고 나간다 템플레이트, 또한 피스톤처럼 내 앱 R 000에 8 번 포트로 통합니다 >> 리포터 : PORT 8000

내가 원한 것 중 하나 이 정의의 처음으로 가려면 모두, 나는이 건물을 원한다 누군가가 정의한 이미지 DOCKER HUB 나는이 이미지를 가지고있다 거기있는 사람은 누구인가? 정말 좋은 이미지를 만들었습니다 웹 서버를 호스팅하십시오

나는 얻고있어 여기 자동 완성 이것은 온다 Docker Hub에서, 그래서 나는 찾을 수있다 이러한 용기는 갖지 않고 내 개발자 도구를 떠나야합니다

이 엔진 웹 서버인가 정말 빠르고 효율적입니다 그것은 좋은 파일 및 연결 DJANGO 응용 프로그램 사용 UWSJI 인터페이스 나는 필요 없어 내 신청서를 시작하십시오 어떻게 아는가? 이 콘테이너에있는 DJANGO를 찾으러

내가해야 할 몇 가지 사항은 다름 아니다 내가 들려 줄 수있는 포트를 알려주세요 웹 서버가 포트 8000에서 청취합니다 그런 다음 URL을 정의하고 싶습니다 내 파일이 발견 될 것입니다

잘 말씀하십시오 – 내 노트를 확인해야합니다 네 공전 그리고 DJANGO를 위해서 배포시 응용 프로그램, 수집 할 명령을 실행해야합니다 당신의 정적 파일들

당신이있는 경우 — 너의 모든 정체를 잡아 당길거야 다른 응용 프로그램의 파일 당신이 봉사 할 수있는 고정 된 폴더에 여기에이 폴더가있을거야 그래서 내가해야 할 일, 나는 여전히 내 앞을 지을 필요가있다 이 용기에 포장하십시오 나는 다단계 빌드를 사용할 수 있습니다

나는 NODE 이미지로 시작할 수 있습니다 제가 할수 있어요 MNPM 설치와 같은 실행 명령 내 컨테이너를 만들려는 실행 빌드 영상 내가 원한 마지막 실행 중입니다 – 삭제하고 싶습니다 노드 모듈은 포장하지 않습니다 콘테이너 안에다

나는 왼쪽이다 내 정면 전방 끝 내가 원하는 이 건물 내부에서 NODE BUILD 폴더 나는 모두를 추가하고 싶다 NODE BUILD FOLDER로 코드하십시오

그래서 여기서 내가 원하는 것은 무엇이든, 나는 원한다 이 기본 출력을 복사하려면 내 두 번째 콘테이너에 얼마 지나지 않아 이 독사 컨테이너에서 "나는"말합니다 전제 조건을 모두 거쳐야합니다 나는 복사하고 싶다 – 나는 사본을 말할 것이다, 그리고 나서, 나는 좋은 자동차를 가지고있다

APP에서 0에서의 완성 이 결과를 복사합니다 단계 호프만 내가 잊지 않았어 아무데도

이것은 우리의 생산이다 컨테이너 우리가 우리 작전으로 가면 FILE, 우리는 환경을 찾아야했다 변수 이 사건에서 우리는 프로덕션 포스트 데이터베이스 생성 다른 몇 가지

우리는 필요해 비밀과 다른 것들 응용 프로그램 사용 그것들은 ~에있다 우리가 사용할 수있는 응용 프로그램을 설정하십시오 여기이 샘플 파일을 끝내십시오

어디에 우리는 데이터베이스 사용자를 정의합니다 우리 TWEETER 우리는 몇 가지를 집어 넣을 수있다 여기에있는 것들 복사 / 붙여 넣기 샘플에

우리는 단지 구성해야합니다 명령 줄에서 어떤 사용자 우리의 데이터베이스에 사용할 이름 이것들은 연결에 사용됩니다 데이터베이스를 만듭니다 네가 원한다면 그것을 통역하는 것은 쉽다

패스워드 요구 사항을 통과시킨다 AZURE, 좋은 점이 하나 있습니다 당신 그래서이 SPHIEL A STANDARD WAY 변수를 정의합니다 내가 언제 달릴 까? 내 신청서 DJANGO가 피킹됩니다

이 제품을 생산하기 위해 사용하십시오 구성 내가 만들고 싶으면 데이터베이스, 여기에 스크립트가 있습니다 내가 이것을 만들었습니다 POSTGRES 데이터베이스 생성 및 생성 VAIBLESZ를 사용하는 AZURE에서

제가 할수 있어요 — 변수 이게 나를 허용 해 데이터베이스를 생성하고 또한 불건전 메시지를 생성하십시오 동일한 신임장을 사용한 나의 APP 앞뒤로 갈 것입니다

쪽으로 그래서, 우리는 포스트를 시작했다 데이터 베이스 이것은 분을 잡습니다 그래서 나는 또한 나의 콘테이너 AT를 건축 할 것이다 동시

내 구성으로 돌아 가기 파일 죄송합니다 나는 뒤로 물러났습니다 앞으로 콘테이너를 시작할 때 APP, 포인트로 구성 오른쪽 데이터베이스에

짓다 이 용기, 나는 오른쪽 클릭 할 수있다 그리고 말하십시오 그게 지을거야 신청서 하나, 이것 이 이미지로이 이미지를 만들겠습니다

이리 신청서를 제출하고 싶습니다 AZURE CONTAINER REGISTRY까지 이것은 등록의 이름이다 내가 만들었다

이것은 개인 컨테이너이다 내가 만든 등록 여기에서 두 번째 우리가 TBEEK 우리의 포칼 및 우리의 파이썬 데모 계정을여십시오, 이쪽 내가 만든 콘테이너 등록입니다 내가 누를 수 있으면 좋겠다

이 등록, 나는 열 필요가있다 접근 키 및 비밀 복사 그에 대한 그럼 내가 여기에 로그인 할 수있어 유형을 결정하는 성향 -이 약속 타이핑으로 – 그리고 나는 이미있다 이

IT가 패스워드를 알려줍니다 그럼 당신은 정통이에요 나는 항상 미스터리이다 어떤 이유로 스택을 모으십시오

오른쪽 클릭, 위로 구성 그래서 거기에 컨테이너를 만들 수 있습니다 우리 데이터베이스에서 확인해 보겠습니다 아직도 작동하는지 확인하십시오 그게 다야

벌금 그래서 지금 내가 이걸하고 싶어 우리가 창조 한 상상 콘테이너 등록 나는 그들을 사용할 수있다 이미지를 보려면 도커 확장 나는 지역적으로 생계를 꾸렸다

이것은 하나이다 그냥 함께 구성하십시오 그래서 나는 이 이미지를 선택하고 선택하십시오 푸시 그걸로 콘테이너 등록

너는 볼 수있어 이미이 버전이 있습니다 15 개의 메가 바이트를 푸시하거나 그래서 나는 여기에서 창조한다 이것은 여전히 달리는 저것이 뛰고있는 동안, 우리는 우리 콘테이너의 내부를 불 수 있습니다 시간이 끝났습니다

이 컨테이너 로컬에서 실행 중입니다 나는 내 데이터베이스를 가지고있다 만들어진 지금 나는 초기화 할 필요가있다 데이터베이스

나는 이방인을 기권한다 AZURE에서 동일한 작업을 수행 할 수 있습니까? 나는 환경에서 그것을 실행할 필요가있다 내 변종과 내 암호가있다 그리고 설정하는 직원 만약 내가 내 DOCER TAB로 가면 될 수 있습니다

ATTACH SHELL을 (를) 클릭하고 이야기하십시오 언제 나는 그 명령을 내린다 콘테이너에서 실행 나의 환경 변수는 여기에 있습니다 지금 DJANGO MANAGE PY를 실행하면 이민

지금은 그럴 겁니다 생산 데이터베이스에서 지금, 나에게이 말을 전한다 이 호스트를위한 COMP 항목이 없습니다 그것 내 IP 주소 필요성을 의미합니다

FIREWALL RULE에 추가됩니다 나의 스크립트가이를 지원했습니다 하지만 나는 부지런한 직원이다 VPN을 통해 24 시간 연중 무휴 AZURE가 내 IP 주소라고 생각하는 것 있습니다 내 자원을 찾아 볼 수 있습니다

AZURE, 내 피스톤 리소스로 이동 데이터베이스와 그룹 제가 할수 있어요 내 연결 보안으로 이동하십시오 그런 다음 나는 내가 허용 한 것을 업데이트 할 수있다 P 내 주소 사용 규칙 주소

나는 여기에 범위를 가질 것이다 내 IP를 알기 때문에 다른 곳과 가까운 곳에서 주소가 바운스된다 가치 IP의 범위를 추가하십시오 여기에 마이크로 소프트 서브넷 용 프로 팁, 화살표를 사용할 수 있습니다

당신의 진짜 모습을 드러내세요 IP 주소는 AZURE처럼 보입니다 내 데이터베이스를 옮길 수 있습니다 제가 할수 있어요 그것이 이민자에게 적용되는 것입니다 그 생산 데이터베이스에

주기 여기에 두 번째 그 마무리, 초기 데이터를로드 할 수 있습니다 이 지방을 보자 여기 콘테이너 지금은 실행 중입니다

지역적으로, 그러나 그것과 이야기하고있다 내가 원하는 제품 데이터베이스 초기화 됨 나는 그것을 확신하고있다 그 전에는 로컬 머신에서 작동합니다 나는 그것을 생산하기 위해 배로 운송한다

여기에서 일하고 굉장합니다 제가 할수 있어요 이 이미지를 배포하고 새로운 이미지 만들기 그것으로부터의 WEB 신청 지금 나는 언급했다 나는 이것을 AZURE CONTAINER에 푸시했다

기재 나는 도커 확장을 사용할 수 있습니다 내 등록을 찾아 보러 나는 서명 할 수있다 에서

여기 AZURE에 클릭하십시오 간단합니다 나는 서명한다 나는 지금 서명했다 내가 오면 위로 VS 코드로, 나는 나의 데모를 볼 수있다

내가 AZURE에서 만든 등록 그곳에 그게 TWEETER 앱 이미지 야 제가 할수 있어요 AZ 이미지에 이미지를 선택하십시오 NEW AZURE를 만드는 서비스 APP를 사용하도록 구성된 APP 서비스 컨테이너 이미지 나는 그것을 놓고 싶다

피스톤 사용자 그룹 및 선택 기존 APP 서비스 계획에서 기본적으로 킨이 허용되는 삶 여러 웹 사이트 공유 그럼 우리는 할거야 이 건물에서 IT TWEETER APP라고 부르세요 끝 부분 앞으로 나아갈 것입니다

그리고 그것을 배치하십시오 지금 내가 한 가지 나 내가 만든 후에도해야합니다 이 새로운 웹 앱 신청이 필요합니다 지역적으로 볼만하다

그건 아니야 여기에서 확인했습니다 그것은 단지를위한 것입니다 지역 환경 나는 그것을 추가했다 그래서 내가 실수로하지 않는 파일 내가 할 때 그것을 입력하십시오

이것은 AZURE APP 서비스 확장입니다 나는 134R0R 내 TWEETER APP 여기 있습니다 애플리케이션 설정을 여는 경우 이들은 환경 변수들입니다 신청서에

나는 할 수있어 딸깍 하는 소리 그리고 나는 지역을 올릴거야 설정 및 사용 이 모든 구성, 모든 설정 및 적용 웹 앱이므로 모든 권리가 있습니다

비밀 번호 그리고 나서 내가 훑어 볼 수있다 이 웹 사이트와 여기에 그것을 두 번째로 가져다 주면로드 될 것입니다 쪽으로 웹 사이트를 통해 내가 훑어 볼 때 콘테이너 아래로 내려 가고있어 조금 시간이 걸립니다

사실은 QUICK이라는 것이 었습니다 저기있다 신청 내 포장 애플 리케이션 포스트 데이터베이스와 그 인상 ANALYSIS API 여기있다

제가 할수 있어요 그럼이게 놀랍다 시원한 밥이오고있어 그게 우리가 한 번 변경하십시오 그게 많이있다

물건 빨리 흡수 되니? 우리 설정을 저장하려면 파일을 사용하십시오 이것은 지역에만 적용됩니다 너는 삭제해야한다 네가 할 때이 파일

에서 우리의 설정 생산 파이 파일, 나는 이것을 나타내지 않았지만 우리는 구성했다 생산 데이터베이스를 사용합니다 우리가 실제로 사용하도록 이야기하는 길 생산 데이터베이스는 환경이다 그 변종을 전화 걸기 DJANGO 실행 구성 우리가 설정 생산 가변을 올리십시오

우리는 사용했었다 CREATE DB SCRIPT를 만들어서 데이터 베이스 그럼 우리는 생산을 창출했다 도커 파일 다중 사용 NODE APP를 만들기 위해 지어줍니다 그 다음 톱 위에 피톤 앱을 만듭니다 그거야

한 번 우리가 파일을 정의했습니다 우리는 COMPOSE UP UP IT를 사용했습니다 우리는 지역에있는 컨테이너에 부착했습니다 데이터베이스 이관을 실행하고 실행합니다 현지 생산 공장에서 생산 데이터베이스를 초기화하십시오

그럼 내가 한 걸음도 놓치고있어 권리 웹 응용 프로그램을 클릭하고 배포하십시오 주문에 문제가 생길 수 있습니다 슬라이드가 있습니다 우리는 컨테이너를 만들었습니다

기재 그럼 우리는 도커 기록을 만들었습니다 액세스하려면 그때 우리는 컴포지션의 이미지 이름 설정 그래서 우리는 이름을 미리 정했다 우리가 언제 콘테이너 등록을할까요? 배포 위치를 알았습니다

에 그러면 거기에서 우린 괜찮아 콘테이너 등록을 클릭하십시오 소규모 서비스 제공 및 배치 우리는 그 일을 기다릴 필요가 없었습니다 그것이 오기까지 오랫동안

내가 원한다 CI / CD를 어떻게 설정하는지 이야기 해주십시오 AZURE 파이프 라인 네가 아닌 경우 AZURE 개발자와 함께하는 IT, IT 건축물을위한 서비스 – 개발자 도구 용 그래서 거기 몇 가지 다른 것들이 있습니다

하늘빛 예술품은 당신에게 개인 패키지를 제공합니다 먹이 너가 PYTHON을 만들면 패키지 및 내부적으로 배포, 당신은 AZURE ARTIFACTS를 사용할 수 있습니다 둘 다 사설 급식 그때 제공하는 AZURE PIPELINES가 있습니다 네가 게시 한 건물

우리는 그것을 사용할 것입니다 앱을 배포하려면 또한 SOURCE CONTROL 그리고 추적을위한 보드 다만 AZURE PIPELINES의 빠른 알림 오픈 소스 프로젝트를 사용하는 경우, 당신은 무료로 10 개의 건물을 갖게됩니다

OPEN SOURCE PROJECTS 너는 얻는다 LINUX, MAC 및 WINDOWS BUILD MACHINES 이것은 매우 아름답게 보입니다 오픈 소스 커뮤니티

인기 있는 피톤 프로젝트와 같은 피톤 프로젝트 CI를 위해 AZURE PIPELINES를 사용하고 있습니다 반창고, 너는 반다르가 있을지도 몰라 AZURE PIPELINES를 사용하는 기타 패키지 무료 숙박 시설로 인해 GitHub과 DEFINE에서 가져올 수 있습니다 귀하의 USINGIAMA 파일을 구축하십시오 REPO

나는 그 중 한 쌍을 가지고있다 보세요 나는 그 두 가지 파일이있다 이 정의를 내 파이프 라이닝으로 정의하십시오 나는 뛰고 싶은 시험

이 정의 가져 가고 싶은 단계 설정 내 파이프 라인에 IT가 트리거를 찾는다 석사 코드 변경이있는 경우 주 (主) 현과의 협조 내 정보에는이 정보가 계속 표시됩니다 통합 파일

이것은 매트릭스이다 3시에 시험하고 싶다고 말합니다 6 및 3 7 처음 사용 피스톤 버전 허용 단계 PYTHON 버전으로 미국을 끌어 들이기 우리는 사용하고 싶다

파이프 라인 2 또는 파이프 라인 3이 건물 작업은 아래로 내려올 것입니다 바늘의 오른쪽 버전 그때 IT 스크립트 실행 설치 가능 TXT와 THE의 요구 사항 PYTEST는 한 회원이 만들었습니다 파이프 라인 커뮤니티

마침내 거기서 마냥 뛰다 그렇다면 놓아주세요 파이프 라인을 만들지 마십시오 누군가 DEV DOT AZURE로 갈 수 있습니다 com

만약 당신은 파이프 라인 및 건물로 이동, 새로운 파이프 라인으로 시작할 수 있습니다 새로운 것을 선택하고 새로운 건물로 가라 관로 그런 다음 허용 할 것입니다 GitHub REAPO를 선택하십시오

나는 Github을 클릭 할 수 있습니다 하나 줘 봐 여기 두번째 그래서 그것은 내 저장소를 가지고있다 이리 TWEETER APP REPO가 있습니다

여기를 클릭하여 A를 생성 할 수 있습니까? YACKLE TEMPLATE – YAML TEMPLATE 여기 CI 파이프 라인을 선택할 수 있습니다 나는 그것을 설정했다 나는 상상할 것이다 나는 여기 계속했다

만약 내가 간다면 내 건물로 돌아 가라 너 거기 볼 수있어 TWEETER APP 테스 트입니다 이 런, 내가 코드 변경을 확인할 때, 당신은 거기에 소금을 볼 수 있습니다 3

6 및 3 7 버전 나는 시험에 가셔서 시험을 볼 수 있습니다 IT RAN 6 테스트 모두 통과했습니다

나는 과거의 시험들을 볼 수있다 필터 우리는 거기에 갈 나는 각자 볼 수있다 RAN을 테스트하고 오래 동안 테스트합니다

이 파이프 라인이 성공하면, 나는 다른 파이프 라인을 설치 했어 내 배포를 수행합니다 이것은 부분이다 이 배치 파이프 라인의 이건 기본적으로 우리의 DOCKER CONTAINER의 손잡이

그것 IT는 아래로 끌어 당깁니다 그것 그것은 컨테이너를 실행합니다 그 다음엔 여기에서 옮기십시오 내가 가진다면 내 데이터베이스가 바뀌면 이 부분을 변경하여 신청하십시오

파이프 라인 그리고 나서 업데이트 할 것입니다 사용 된 이미지를 업데이트하십시오 그래서 내가 여기 가서 AT를 들으면 다단식 건물 파이프 라인 당신은 걸음마 단계를 볼 수 있습니다 비밀, 비밀을 전달하십시오

여기에 따라서 예를 들어, 도커 로그인 단계를보십시오 그것 말씀하십시오 – 비밀을 볼 수 없습니다 여기 터미널에 너에게나 우리가 가면 우리에게 알려주십시오

파이프 라인 편집, 해당 단계를 클릭하십시오 거기에 다양한 점을 살펴보십시오 나는 모든 암호를 수정했다 이리 이봐, 내 데이터베이스 암호

이 아이콘을 클릭하면됩니다 이걸 잠그세요 당신이 그걸 풀면, 비밀을 알게 된 것은 아닙니다 다시 내가 무방비 상태로 만들려고 노력했다면 이 패스워드는 내가 사용할 수 없을 것이다

AT 찾아라 그것은 한 번에 일어난 일입니다 너는 들어갔다 만약 당신이 끝내면 너 비밀을 가져다 줄 수있어 그곳에

이를 통해 빠른 실행 파이프 라인을 어떻게 세우셨습니까? 빠른 전환을 위해 돌아 가기 그리고 그것을 털어 라 새로운 것을 창조하십시오 파이프 라인, DEV DOT AZURE DOT-COM으로 가십시오 REPO 선택 및 YAML 파일 추가 당신의 갱생에 당신은 발견 할 것이다 이 내부에서 실행되는 단계 YAML 파일, 그럼 비밀을 저장할 수 있어요 포탈의 변수들 내부

그래서 우리는 끝까지 가까워지고 있습니다 이야기 그것은 건축의 여행이었습니다 이 TWEETER 응용 및 복용 DEV 컨테이너를 사용하여 IT를 얻는 방법 좋은 생산 로컬 개발 콘테이너를 사용하는 환경 과 그 다음에 AZURE로 전개하십시오

우리 AZ WEB COMPOSE ABOUT AND AND AND AND 그런 다음 도구 모음을 사용하여 빌드 생산도 커 컨테이너 배포하고 전체 라이프 사이클입니다 오늘 주셔서 감사합니다 내가 따라 갔던 모든 코드 오늘은 MICROSOFT PYTHON에 있습니다 견본 부착기 APP 학습 할 수 있습니까? AZURE DOT PYTHON에서 더

그곳에 훌륭한 출처가 링크되어 있습니다 만약 너라면 어떤 일에도 계속 기쁘게 지내고 싶습니다 우리는 거기에 피곤하고있다 내 트위터 핸들 나는 이용할 수있다

이야기 후에 질문하십시오 하다 세션 평가를 작성하십시오 나는 당신의 의견을보고 싶다 주제를 트위 킹 할 수있는 방법 배우기 다음 시간 그래서, 여러분, 모두들

9. Securing Web Applications

광고 소재 아래에 다음 콘텐츠가 제공됩니다 커먼즈 라이센스

귀하의 지원은 MIT OpenCourseWare에 도움이 될 것입니다 무료 교육 자료를 지속적으로 제공합니다 기부 또는 추가 자료보기 수백 개의 MIT 과정에서 MIT OpenCourseWare 방문 ocwmitedu에서

교수 : 좋습니다 그럼 두 번째 강의를 시작합시다 웹 보안에 관한 우리의 놀라운 시리즈에서 오늘 수업을 시작하려면 실제로 간단한 데모를보고 싶습니다 아시다시피 데모는 거의 작동하지 않습니다

잘하면 내 빈 터미널을 보지 않을거야 여기 그러나 기본적인 생각은 내가 먼저 Shellshock 버그의 예를 보여주고 싶었습니다 당신이 들었을 수도 있습니다 이것은 꽤 인기있는 주제였습니다

보안 문학에서 그리고 사람들은 Heartbleed 10 가지 보안 중 10 가지 [? 곤충 ?] 하지만 사람들은 우리가 예약해서는 안된다는 말을했습니다 10 중 10의 Heartbleed 이것은 잠재적으로 더 나쁘다 괜찮아? 그래서 저는 이것이 당신들에게 좋은 생각이라고 생각했습니다

살아있는 역사를보고 부모님 께 수업료를 내고있어 MIT의 그렇다면 Shellshock 버그의 기본 아이디어는 무엇입니까? 음, 정말 좋은 예입니다 안전한 웹을 구축하는 것이 왜 어려운지 여러 기술에 적용되는 애플리케이션 스택, 다중 언어, 다중 OS, 등등 앞으로 그래서 기본적인 생각은 Shellshock 사실을 이용하려고한다 공격자가 특수 HTTP를 만들 수 있음 서버에 요청하고 헤더를 제어합니다

그 요청에 있습니다 그래서 여기에 예제를 작성했습니다 매우 간단합니다 따라서 공격자가 일부 GET 쿼리를 보내려고한다고 가정 해 봅시다 그들은 그 쿼리를 일부 CGI 인터페이스에 보낼 것입니다

그러면 몇 가지 물음표가 나타날 것입니다 그 사람은 고양이를 찾고 싶어합니다 이것이 사람들이 검색하는 모든 것입니다 그리고 몇 가지 표준 헤더가 있습니다 예를 들어, 호스트와 같은

여기에이 URL이 있습니다 examplecom에 매달려 있습니다 이제 공격자가 사용자 지정 헤더를 지정할 수도 있습니다 권리? 그래서 공격자는 단지 내가 말할 수 있습니다

애플리케이션 별 헤더를 찾아야한다 커스텀 헤더 (Custom-header)라고 불리는데, 거기에 어떤 값을 지정하고 싶습니다 웹 애플리케이션이 정의 할 수 있다고 상상할 수 있기 때문에 할 수없는 특정 기능 미리 정의 된 단순한 HTTP 헤더를 사용하여 표현할 수 있습니다 승인 모든 것이 상당히 무해한 것처럼 보입니다

그러나 일어나는 일은 많은 CGI 웹에 있습니다 서버를 사용하면 실제로 이러한 맞춤 헤더 값을 사용하게됩니다 Bash를 위해 환경 변수를 설정하는 데 사용하십시오 승인? 따라서이 헤더를 사용하여 Bash 변수 이름을 만듭니다 맞춤 헤더

그런 다음 그들은이 가치를 여기에서 가져갈 것입니다 공격자가 제공 한 그 Bash 변수의 값이되는 것입니다, 맞습니까? 그리고 일단 변수가 설정되면, CGI 서버가 일부 처리를 수행합니다 그 환경의 맥락에서 권리? 그래서 이것은 분명히 나쁘다 아마도 이것이 어디로 가고 있는지 알 수있을 것입니다 웹 서버는 이러한 임의의 값을 가져서는 안됩니다 임의의 씻지 않은 대중으로부터

따라서 Shellshock 버그의 특정 예에서, 무슨 일이 일어 났는지는 Bash 변수를 설정하면 이것에, 이런 종류의 변형 된, 사악한 것, 그리고 나서 일어나는 광기가있을 것입니다 기본적으로 이것은 형식이 잘못되었습니다 [? 선택?] 기능 정의를 Bash 스크립팅 언어로 정의합니다 당신은 그것의 특성에 대해 걱정할 필요가 없습니다 그러나 Bash가 정확했다면, 여기있는이 부분이 처형되지 않을 것입니다 그래서 기본적으로, 당신은 지금 바보 같은 함수를 정의했습니다

그게 아무것도하지 않아 그리고 [INAUDIBLE]에서 여기서 종료하십시오 그러나 실제로이 일련의 문자들은 Bash 파서를 혼란스럽게합니다 그리고 결국 일어나는 일은 그것이 일종의 비틀 거리다는 것입니다 여기이 말도 안돼

그리고 나서, 오, 나는 계속 파싱을 할 것입니다 여기 몇 가지 명령을 실행하십시오 이 경우 bin / id 명령 만 수행합니다 사용자에 대한 정보를 표시합니다 하지만 여기에 어떤 코드가있을 수 있습니다

이것이 이것이 취약점의 핵심입니다 그래서 여기에 아주 간단한 예제를 드리겠습니다 그래서 당신은 화면에 나타납니다 기본적으로 여기에는 매우 간단한 Python 서버가 있습니다 네가 상상할 수있는 가장 멍청한 사람

이 방법은 GET 방법입니다 그래서 GET 방법을 사용하면 기본적으로 모든 HTTP 헤더를 반복합니다 요청에 승인? 헤더의 네 가지 주요 값 이 요청의 값 그런 다음 발견 한 헤더를 인쇄합니다 그리고이 흙먼지 간단한 예에서, 아주 무언가를 할 것입니다

시스템 호출을 실행하고 직접 설정합니다 환경 치를 헤더로 지정된 값으로 설정합니다 이것이 취약점의 근원입니다 그래서 내가 여기 와서 희생자 웹 서버를 시작한다면 – 이제 요청을 수락 할 준비가되었습니다 그런 다음 특수 쉘shock 클라이언트를 작성할 수 있습니다

그리고 이것은 실제로 꽤 더러워졌습니다 그래서 여기에서, 저는이 잘못된 문자열 중 하나를 정의합니다 그래서 처음에는 이런 종류의 잔키가 있습니다 그리고 나서 나는이 모든 것이 본질적으로 서버 측에서 저를 대신하여 처형 될 것입니다 그래서이 경우, 나는 실제로 꽤 무해했다

그냥, 에코, 내가 네 기계를 소유하고 있다고 말한다 그러나 이것은 여기 아무거나 일 수 있습니다 내가 여기처럼 다른 Bash 셸을 시작할 수 있습니다 그리고 나서, 에코 공격자 명령, 현실 세계에서, 실제로는 매우 위험한 것이 될 수 있습니다 그래서 헤더와 커스텀 요청을 설정합니다

그리고 나서 파이썬을 사용하여 HTTP 연결을 만듭니다 그냥 서버로 보냅니다 그래서 무슨 일이 일어나고 있니? 그래서 저는 여기 Shellshock 클라이언트를 실행합니다 그래서 저는 여기에 404가 있다고 말하고 있습니다 왜냐하면 내가 요청한 파일이 중요하지 않기 때문이다

그래서 나는 존재하지 않는 HTML 색인을 삽입했습니다 그러나 여기를 살펴보면 서버에 대한 결과입니다 그래서 여러분이 보는 것은 여러분이이 결과물을 가지고 있다는 것입니다, 나는 기계를 소유하고 ATTACKER CMD를 소유하고 있습니다 그리고 그 이유는 서버가 헤더를 가지고 있기 때문에, Bash 변수를 설정합니다 이 이상한 일로 여기에 놓았습니다

결과적으로 ATTACKER 제어 명령 도망 갔어 그렇게 모든 것이 의미가 있습니까? 관객 : 프로그램이 그 밑에 있다면이 일이 일어날까요? 나는 아직도 불분명하다 교수 : 네 따라서 공격이 실제로 어떻게 작동하는지에 대한 세부 사항 당신이 아파치를 실행하는지에 달려있다 귀하의 웹 서버는 다음과 같습니다

그래서이 예제에서, 그것은 조금 인위적입니다, 실제로 [INAUDIBLE]을 명시 적으로 스폰하기 때문에 다른 Bash 셸에서 환경 변수를 설정하고, 그리고 우리는 갈 준비가되어있었습니다 하지만 당신이 산란하는 경우에 상상할 수 있습니다 들어오는 연결마다 다른 프로세스, 직접 환경 변수를 설정할 수 있습니다 그 사람이 사용하고 있었다면 Bash 환경 관객 : 웹 서버 코드로 돌아 가면, 당신이 훨씬 더 취약한 것으로 보입니다 당신이 전화하기 때문에 Shellshock보다? 그래도?] 시스템 그리고 커스텀 헤더를 설정하는 것만으로 명령을 실행할 수 있습니다

뭔가 [? 그거?] 이 예제에서는 Shellshock 버그를 사용할 필요가 없습니다 교수 : 맞습니다 네 그래서이 특정 웹 서버에서는 어떤 것이 있습니다

나는 단지 가르치는 가치에 대해서 썼다 네,이 일은 당신이 아무것도 믿지 않아야합니다 관객 : 그러나 Shellshock 익스플로잇 환경에 악의적 인 것을 할당하는 중이었습니다 [? N?]을 설정하거나 그런 식으로, [무관 한] 무언가입니다 교수 : 오, 예, 예

그래서 그의 질문으로 돌아갑니다 맞습니다 그러니까, 아파치가 여기 있다고 가정 해 봅시다 아파치는 구성을 정렬하기가 약간 까다 롭다 분명히 무슨 일이 벌어지고 있는지를 보여줍니다

하지만 당신 말이 맞습니다 그래서 아파치는 Set nth를 호출 할 것입니다 환경을 직접 설정할 수있는 또 다른 방법입니다 특정 서비스에 대한 가치 [? 나?] 당신이 가진 과정 하지만 실제로 서버가 일부 있습니다

이처럼 당신은 그들이 실제로 별도의 프로세스를 생성하고 매우 도덕적으로 무언가를 수행하십시오 이것과 동등하다 하지만 네 말이 맞다 특히 패치가 위반되었다고 당신이 묘사 한 방식이었습니다 그럼 모두 이해가 되니? 승인

그래서 그것은 일종의 빠르고 더러운 예제입니다 Shellshock 물건 그래서 제가주고 싶은 또 다른 예가 있습니다 당신은 크로스 사이트 스크립팅의 한 예였습니다 그래서 Shellshock 버그는 일종의 것이 었습니다

콘텐츠 위생이 매우 중요하다는 예를 우리가 방금 토론 한 것처럼, 당신은 임의의 사람으로부터 입력을 받다 그리고 그들은 그것들을 어떤 유형의 명령에서도 직접 사용합니다 따라서 교차 사이트 스크립팅 공격은 또 다른 예입니다 어떻게 잘못 될 수 있는지 그래서이 예에서는 다른 정렬이 있습니다

바보 CGI 서버 여기에 그리고 우리가이 CGI 서버를 보면, 그래서 무엇을 할 것인가? 그래서 다시 한번, 나는 아주 간단한 것을 썼다 파이썬에서 이것은 그 핸들이 될 것입니다 클라이언트로부터 요청이 들어올 때 실행됩니다

그리고 근본적으로, 어떻게됩니까? 여기서는 응답 헤더를 출력 할 것입니다 그래서 저는 제 대답은 다음과 같습니다 텍스트 형식의 HTML이 될 것입니다 이 줄은 여기에서 실제로 설명 할 것입니다 따라서 브라우저에는 보안 메커니즘이 있습니다

내가 너에게 보여줄 공격을 막으려 고 그래서 나는이 예를 넣었습니다 나는 거기에 헤더 줄을 넣었습니다 일부 보호 기능을 해제 할 수 있습니다 CGI 스크립트가하는 일 모든 필드 및 CGI 요청에 액세스 할 수 있는지 여부 쿼리 문자열에있는 모든 것을 상상해보십시오

이 물음표 뒤에 -이 머리말과 가치 사물처럼, 그것이 그 형태의 예에 들어갑니다 CGI 스크립트가하는 일은 매우 간단합니다 단지 직접적으로 그 값을 인쇄합니다 공격자가 통과했다 똑같은 기본 아이디어

이것은 나쁜 생각입니다 왜냐하면이 Print 문은, HTML 자체에 직접 인쇄됩니다 그래서 일어날 수있는 것은 다음과 같습니다 그럼 내가 원하는 쿼리를 가지고 있다고 가정 해 봅시다 그래서이 첫 번째 쿼리에서는 메시지 값을 설정하고 있습니다

안녕하세요 그래서 내가 여기로 가서 그 페이지를 실행하면, 음, 그럼이여보세요가 나타나는지 보러 갈거야 왜냐하면 서버가 다시 한 번 나는 그것에 전달합니다 그리고 Hello를 출력합니다 그래서 큰 놀라움은 없습니다

이제 내가 실제로 거기에 임의의 HTML을 전달하십시오 그래서 저는 실제로 거기에 어떤 스타일링을 넣으려고합니다 그래서 저는 h1을 말하고 그 다음 다시 h1을 말합니다 그래서 효과가 있었습니까? 그래서 다시 한번 우리는 [? 구워라 ?] 이제 당신은 생각할 것입니다, 좋아, 우리는 지금 사업을하고 있습니다

이것은 멋지다 자 이제 일부 JavaScript 코드를 직접 삽입 해 봅시다 괜찮아 그래서 나는 이것을한다 그리고 여기에, 저는 실제로 메시지에 넣었습니다

나는 대본을 썼다 그런 다음 XSS에 경고하고 스크립트로 전달하기를 원합니다 이제 재미 있습니다 그래서 뭔가가 제대로 작동하지 않는 것처럼 보입니다 그래서 나는 어떤 결과물도 보지 못했다

경고도 보지 못했습니다 그리고 실제로 웹 서버의 출력을 보면 – 그리고 내가 본 것은 여기에 웹이다 서버 자체는 그 후행 스크립트 태그를 실제로 얻지 못했습니다 그래서 브라우저 자체가 어떻게 든 보이는 것처럼 보입니다 시도했지만 뭔가 악의를 발견했습니다

XSS 필터를 비활성화합니다 그래서 재미 있습니다 우리는이 방어 메커니즘에 약간의 관심을 기울일 것입니다 강의에서 그러나 말하기에 충분하다

브라우저처럼 보인다 이 크로스 사이트 스크립팅 공격에 저항하려고합니다 물론 우리가 활용할 수있는 것은 of의 사실은 HTML, CSS 및 JavaScript가, 그들은 매우 복잡한 언어입니다 그리고 그들은이 매우 이해하기 어려운 방식으로 구성됩니다 그래서 여기에, 제가 여기 공격 문자열을 설정 한 것입니다

이것은 형식이 잘못된 URL입니다 나는 말하고있다, 이미지, 그리고 3 개의 인용문 마크 (mark), 스크립트 태그 (script tag)를 포함한다 마찬가지로 이것은 실제로 구문 분석해서는 안됩니다 그러나 무슨 일이 일어나게 될까요? 브라우저가 혼란 스러울 것입니다 따라서 사이트 간 스크립팅 검색 기능이 내장되어 있습니다

실제로 여기서 실패합니다 그리고 일어나는 일은 이제 경고를 보게됩니다 승인? 흥미로운 점은 실제로 지금 페이지의 내용을 살펴보면 다소 엉망입니다 이 인용 부호와 중괄호는 어디서 들어 왔습니까? 우리가 컨트롤을한다면, 우리는 볼 수 있습니다 이것은 브라우저를 어떤 식 으로든 행복하게 만들지 않는다는 것을 의미합니다

그것은 약간 불분명하다 그러나 우리가 그들의 공격자인지는 중요하지 않습니다 우리는 그 경고를 보았다 즉 [? 우리 코드?]가 달렸어 그리고 공격자의 관점에서 볼 때 누가 신경을 쓰는지 그 페이지가 엉망이 됐어? 내가 그 코드를 사용할 수 있었기 때문에 그런 쿠키 나 물건을 훔치는 것

그럼 그게 다야 그래? 관객 : 교차 사이트 측면이란 무엇입니까? 교수 : 아 따라서 교차 사이트 측면은 공격자가 사용자가 이와 같은 URL로 이동하려면, 그러면 공격자가 지정한 사람이 메시지의 내용

경고 XSS를 지정하는 것은 공격자입니다 또는 그런 것 근본적으로, 무슨 일이 일어나고 있는지 피해자 페이지가 코드를 실행하고 있다는 것입니다 그 페이지가 아닌 누군가를 대신해서 관객 : 브라우저의 역할을 정확히 설명 할 수 있습니까? 살생 [? 게임?] [? 놀이? ?] 교수 : 예, 예

그래서 우리는 1 초 안에 그것에 도달 할 것입니다 그래서 우리는 1 초 안에 그것에 도달 할 것입니다 승인 그래서 모든 것이 이야기 시간입니다 그리고 여기 보자

그래서 나는이 사람을 켤 수 있다고 생각해 그리고 아마 그는 여기 [부적절한] 사람이 될 것입니다 이 사람 청중 : 정면 벽 교수 : 아, 그래

됐어 괜찮아 여덟 번째는 매력이야 알았어 고마워 승인

그래서 네, 당신을 보여주기위한 데모가 두 가지 데모입니다 지금 우리가 사는 더럽고 더러운 세계 그렇다면 왜 크로스 사이트 스크립팅이 널리 퍼져 있습니까? 왜 이러한 문제가 큰 문제입니까? 그 이유는 웹 사이트 점점 더 역동적으로 변하고 있습니다 그들은 사용자 콘텐츠를 여러 번 통합하려는 경우, 또는 다른 도메인의 콘텐츠를 통합하려고합니다 따라서 뉴스 기사의 댓글 섹션을 생각해보십시오

그 의견은 신뢰할 수없는 사람들로부터 왔으며, 사용자로부터 이렇게 여하튼,이 위치는 알아 내야한다, 그런 종류의 것들을 구성하기위한 규칙은 무엇입니까? 또한 웹 사이트는 사용자가 제출 한 문서를 호스팅 할 수 있으며, Google Docs 또는 Office 365와 같은 것입니다 그 문서들은 모두 신뢰할 수없는 사람들로부터 왔으며, 그러나 어쨌든, 그들은 서로 살아야만합니다 대규모 인프라 Google 또는 Microsoft 또는 기타 등에서 그렇다면 일부 교차 사이트 스크립팅 방어는 무엇입니까? 우리가 사용할 수 있습니까? 이런 종류의 질문은 귀하의 질문에 전달됩니다 그래서 우리는 지금 그것들 중 일부를 실제로 볼 것입니다

따라서 한 가지 유형의 방어는 기본적으로 브라우저 자체에서 크로스 사이트 스크립팅 필터가 있습니다 그래서이 필터들은 본질적으로 잠재적 인 교차 사이트 스크립팅이있을 때 탐지하려고 시도하십시오 공격 실제로 실제로 이러한 필터 중 하나를 보았습니다 그리고 저는 그것이 우리가 보았던 세 번째 예라고 생각합니다

네가 어떤 웹 사이트 나 URL을 가지고 있다면 그 모양은 – 그래서 foocom 그리고 몇 가지 물음표가 표시되고 쿼리 문자열이 생깁니다 당신은 제출할 것입니다 이것은 내가 세 번째 시도한 예제와 매우 유사합니다

그래서 저는이 소스를 다음과 같이 설정했습니다 evilcom/cookiestealerjs 그래서 일어난 일은 내가 이와 비슷한 예를 시도했을 때, 브라우저는 실제로 그것을 손에서 거절했다

그래서 우리는 그것이 작동하지 않는다는 것을 알았습니다 그리고 그것이 효과가 없었던 이유 브라우저가보고 보았 기 때문입니다 URL에 삽입 된 스크립트 태그가 있습니까? 그래서 기본적으로 매우 단순한 경험적 방법입니다 악마가 벌어지고 있는지를 알아 내려면 합법적 인 개발자가 없거나 개발자가 없기 때문에 그게 제정신이에요 이런 일을해야합니다

실제로 이러한 구성 옵션이 있습니다 브라우저에서 이러한 것들을 켜고 끌 수 있습니다 때때로 이것은 테스트에 유용합니다 실제로 자바 스크립트를 삽입하려는 경우 빠르고 더러운 그러나 이것은 거의 항상 [비 숙련]으로 지정됩니다

예를 들어 Chrome과 IE에는 다음과 같은 필터가 내장되어 있습니다 검색 주소창의 URL 값을 살펴보고, 이런 것들을 찾으십시오 그리고 그곳에 있다면, 그들은 아마도 삭제할 것 같은 일을 할 것입니다 이 모든 일이 완전하게 그들은 아마도 소스가 비어있는 것으로 바꿀 것이며, 그런 것들

그리고 근본적으로, 당신의 질문에 도달하기 위해서, 브라우저가 가지고있는 경험적 방법이 있습니다 이런 것들을 확인하기 위해서 OWASP 사이트를 살펴보면, 그들은 실제로 발견 적 방법의 예를 수집한다 당신은 크로스 사이트 스크립팅을 탐지하는데 사용할 수 있습니다 이러한 필터를 우회하는 데 사용할 수있는 트릭뿐 아니라 그래서 그것은 매우 우스웠다

그래서 내가 데모를 위해하고 싶었던 첫번째 일 이런 식으로 뭔가하고, 작동하지 않습니다 그래서 나는 OWASP 치트 시트에 갔다 나는 그들이 제안한 세 번째 것을 보았다 그리고 그들이 제안한 세 번째 사항 일종의 깨진 이미지 구문 유형 물건이었습니다 그래서 이것에 의존하는 기본적인 문제 내가 말했듯이, 다른 방법이 많이 있습니다

CSS와 HTML 파서가 잘못 분석하도록 강제합니다 그래서 이러한 것들은 완전한 해결책이 아닙니다 그들은 완벽한 범위를 가지고 있지 않습니다 관객 : 이것은 단지 도입부와 같지 않아야합니다 브라우저에서? 왜냐하면 브라우저의 일이 아닌 것처럼 보이기 때문입니다

교수 : 브라우저의 일이 아니라는 뜻입니다 이런 종류의 물건들을 위생 처리 할까? 관객 : 네 교수 : 내 말은, 당신은 상상할 수 있습니다 예를 들어, 브라우저를 프록시의 꼭대기에 두는 것 그리고 아마도 프록시는 이런 종류의 청소를했습니다

내 말은, 이해할 수있는 직관적 이유 너무 많은 브라우저가 있기 때문에 브라우저에서 할 수 있습니다 합법적 인 구문 분석 엔진이 브라우저 내부에 있습니다 아마도 실제 구문 분석의 위치에 더 가깝다면 끝내면 더 좋습니다 하지만 당신 말이 맞아 실제로, 당신은 일종의 방어가 있다고 상상할 수 있습니다

기본적으로 레이어에 있습니다 관객 : 그가 무엇 일지 생각합니다 웹 개발자의 직업이라고 말하면서, 이것을 위생적으로 다루는 것이 아니라 교수 :하지만 내말은, 그건 마치 그런 말입니다 어떤 의미에서 우리는 프로세스, 유닉스 나 윈도우에서도 마찬가지다 그래서 우리는 일종의 개발자의 일이라고 말할 수 있습니다

그 것들이 고립되어 있는지 확인하십시오 그러나 사실 OS와 하드웨어 또한 중요한 역할을한다 왜냐하면 [INAUDIBLE]은 (는) 신뢰할 수있는 반면에 임의의 두 임의 개발자가 개발 한 프로그램 구현 보안의 종류를 신뢰할 수 있는지 여부 바르게 하지만 당신 말이 맞아 그리고 사실, 장고 (Django) 그들은 실제로 당신을 도우려고 노력합니다

이러한 문제 중 일부 어쨌든 필터는 완벽한 솔루션이 아닙니다 또한 필터는 persistent– 영구 사이트 간 사이트로 알려진 스크립팅 공격 이것은 일종의 반영 또는 일시적인 것으로 알려져 있습니다 이 스크립트 코드는 URL의 일종의 삶을 나타 내기 때문입니다

그런 다음 사용자가 해당 URL을 닫으면 기본적으로 공격은 사라졌습니다 그러나 당신은 당신이 할 수 있다고 상상할 수 있습니다 코멘트에 악의적 인 HTML을 넣는 사람이있다 섹션을 참조하십시오 그리고 웹 서버가 실제로 그 주석이 유효하다는 것을 받아들이면, 그 악의적 인 페이로드와 함께, 본질적으로 영원히 거기에서 살 수있다

따라서 사용자가 갈 때마다 그 악성 콘텐츠에 노출 될 것입니다 또 다른 예는 다음과 같습니다 재미 있고 슬픈,이 모든 것들처럼, 데이트 웹 사이트를 보는 것입니다 그래서 일부 데이트 웹 사이트는 실제로 허용 사용자는 자신의 프로필에 본격적인 HTML을 넣을 수 있습니다 그럼 그게 무슨 뜻 이죠? 그래서 누군가 다른 사람이 외롭고, 아마도, 또는 찾고있을 때 그들의 진정한 영혼 일치를 찾으려면, 그들은 당신의 웹 사이트로 이동합니다

그들은 당신이 HTML을 실행할 것입니다 그들의 세션의 컨텍스트에서 만들어진 그래서 이것은 또한 매우 위험한 공격 일 수도 있습니다 그래서 이런 종류의 필터를 사용하는 것입니다 그런 것들로부터 보호하지 마라

관객 : 의견에 [INAUDIBLE] 섹션은 아마 포스트를 설정함으로써 그렇게한다 정보는 게시물 변수에서 서버로 이동합니다 또는 그런 무엇인가? 교수 : 그래서 여러 가지 방법이 있습니다 당신은 그것을하는 것을 상상할 수 있습니다 네

그렇게하는 것이 상상할 수있는 한 가지 방법은 게시물입니다 상상할 수있는 또 다른 방법은 동적 XML입니다 HTTP 요청 관객 : 네 그러나 그것이 포스트와 같은 것이라면, 왜 그것을 스캔 할 수 없습니까? 네가 가진 것과 똑같은 일을해라

교수 : 네 그래서 당신은 정확하게 그것에 대해 정확합니다 그 중 일부는 잠시 후에 논의 할 것입니다 하지만 서버가 응용 프로그램의 측면이 있어야합니다 매우 방어적이고이 물건에 대해 불신합니다

그래서 네 말이 맞다 그래서 당신은 서버가 어쩌면 상상할 수 있습니다 이 무언가를 보았습니다, [INAUDIBLE] 브라우저가하지 않더라도 당신 말이 맞아 괜찮아

기본적으로 이러한 교차 사이트 필터에 대한 설문 조사입니다 브라우저에서 크로스 사이트 스크립팅에 대한 또 다른 방어책 HTTP 전용 쿠키로 알려져 있습니다 그래서이 기본 개념은 서버가 실제로 브라우저에 알릴 수 있다는 것입니다 클라이언트 측 JavaScript가 특정 쿠키에 액세스 할 수 있어야합니다

기본적으로 서버는 설정된 쿠키 필드에서 응답으로 헤더 값을 보냅니다 그것은 말할 수 있습니다, 이봐, 고객이 자바 스크립트를 못하게해라 이 쿠키를 조작하십시오 따라서 서버 만이 작업을 수행 할 수 있습니다 그리고 이것은 단지 부분적인 방어 일뿐입니다, 공격자가 요청을 발급 할 수 있기 때문에 사용자의 쿠키가 들어 있습니다

그래서 이것은 교차 사이트 요청 위조였습니다 마지막 강좌에서 보았던 것 따라서 JavaScript 코드가 쿠키를 조작 할 수없는 경우에도, 공격자는 여전히 마법 같은 것을 할 수 있습니다 일부 전자 상거래 사이트의 URL을 올리면 buycom이라고합시다

침입자는 침입자가 사고 싶은 항목을 넣을 수 있습니다 그래서 페라리를 넣는다 그리고 나서 공격자는 누구에게 말을해야합니까? 이것은 공격자에게 가야합니다 따라서 자바 스크립트를 좋아하는 고객 쿠키에 액세스 할 수 없습니다 아무 것도 없습니다

공격자가 단지 마법을 쓰는 것을 막아줍니다 이런 URL 이것이 CSRF 토큰 중 일부입니다 반대하는 것을 돕는다 잠시 후에 얘기하십시오 시도 할 수있는 또 다른 것 이러한 교차 사이트 스크립팅 공격을 방지하기 위해 수행해야 할 작업 특권 분리입니다

그래서 여기에있는 아이디어는 기본적으로 모든 콘텐츠에 대해 별도의 도메인을 사용하려는 경우 신뢰할 수 없다 그리고 예를 들어, 많은 온라인 서버 제공 업체 전자 메일 또는 온라인 생산성 제품군과 같은 것들이었습니다 그렇다면 Google Docs, Office 365 등등을 생각해보십시오 그들은 실제로 별도의 도메인을 사용합니다 사용자가 제출 한 콘텐츠를 호스팅합니다

그래서 구글, 나는 그들이 여전히 이것을 사용한다고 생각한다 그들은 사용자가 사용하는 모든 것을 넣곤했습니다 특별한 도메인으로 제출 googleusercontentcom이라고합니다 그래서 여기에서 그들은 물건을 넣을 것입니다

페이지의 캐시 된 사본, Gmail [INAUDIBLE], 그리고 이런 것들 적어도 1 년이나 2 년 전쯤에, 이것은 최고 25의 것 같이 [? Alexa-visited?] 도메인, Google 서비스가 너무 인기가 있었기 때문입니다 그리고 여기에 물건을 넣는 것의 이점은 무엇입니까? 음, 최소한, 희망은 일부 유형의 교차 사이트 스크립팅 취약점입니다 또는 사용자가 제출 한 콘텐츠에서 이와 유사한 내용, 잘하면 데몬은 해당 도메인으로 제한됩니다 그것은 실제로 본격적인 google

com에 영향을 미치지 않습니다 이것은 완벽한 방어가 아니지만, 사용자 제출 콘텐츠에는 참조가있을 수 있기 때문에 googlecom의 것들 그리고 다시 한번, 이것은 단지 일종의 것입니다 훨씬 더 보편적 인 문제에 대한 부분적인 수정이 필요합니다

자네가 할 수있는 또 다른 일은 그리고 이것은 신사의 제안으로 돌아 간다 여기에 우리가 실제로 할 수있는 것입니다

콘텐츠 위생 처리 그래서 여기 아이디어는 본질적으로 당신이 언제든지 – 어디에서 웹이 될 수있는 브라우저가 될 수 있습니까? 서버 또는 기타 – 신뢰할 수없는 콘텐츠를 수신 할 때마다, 당신은 전혀 그것을 신뢰하지 않습니다 그래서 당신은 그것을 통과하고, 당신은 일종의 렌더링을하기 위해 일을합니다 그것은 실제로 중립적이지 않기 때문에 실제로는 불가능합니다 어떤 식 으로든 코드를 실행하거나 시스템을 파괴하십시오

그리고 이것의 예가 Django 템플릿 시스템입니다 그래서 장고는 웹 프레임 워크의 한 예입니다 기본적으로 상위 수준의 웹 프레임 워크 자동화 및 보안에 도움이되는 것입니다 웹 사이트 개발의 지루한 작업 중 일부 따라서 데이터베이스 액세스를 쉽게하는 데 도움이됩니다

세션 관리와 같은 일을 할 때 도움이 될 것입니다 또한 일관된 모양을 유지하는 데 도움이됩니다 귀하의 웹 사이트에서 느낄 수 있습니다 일관성있는 모양과 느낌을 유지하는 한 가지 방법 이 템플릿의 개념을 사용하는 것입니다 따라서 모든 페이지가 자동으로 동일한 CSS 및 사물로 시작하십시오

같은 스타일, 같은 스타일 하지만 웹 페이지에는 이러한 부분이 있습니다 특정 뉴스와 함께 전문화 할 수있는 곳 그날 모든 사람의 마음에 달린 기사, 또는 이와 유사한 것 또는 사용자 별 콘텐츠가 포함됩니다 예를 들어 장고에서는 템플릿을 볼 수 있습니다 이런 식으로 보일지도 모릅니다

따라서 대담한 태그가 있습니다 그것은 말한다, 안녕하세요 그리고 여기에이 중괄호가 있습니다이 이중 중괄호입니다 그리고 그것은 말합니다, 이름

그리고 근본적으로 이것이 의미하는 바는 무엇입니까? 이것이 placeholder 변수와 같다는 것입니다 따라서 기본적으로 이러한 페이지가 동적으로 생성됩니다 그래서 사용자가 Django 사이트에 갈 때, Django 서버는 다음과 같이 말합니다 알고있는 어딘가에있을 것입니다 어쩌면 CGI 문자열에있을 것입니다

그리고 Django 서버가 동적으로 페이지 [? ?]을 (를) 사용자에게 반환하려면, 그것은이 특별한 참조를 여기에 대체합니다 이 변수의 값이 무엇이든 상관 없습니다 그래서 매우 간단합니다 이것은 내가 당신에게 보여준 dinky CGI 서버와 비슷합니다 사용자가 제출 한 콘텐츠 만 반영합니다

바로 여기에 그러나 장고는 바보 같은 CGI보다 실제로 더 잘합니다 이 개념을 사용하기 때문에 내가 보여준 서버 콘텐츠 위생 처리 따라서 Django는 사용자가 적대적 일 수 있다고 예상합니다 그래서 직접적으로 집어 넣는 것이 아닙니다

여기서 name 변수의 값 대신, 그것은 그것을 그런 식으로 인코딩하려고합니다 이 콘텐츠는 결코 벗어날 수 없다는 것을 HTML 컨텍스트 및 JavaScript 실행 또는 이와 비슷한 것입니다 예를 들어, 할 일 중 하나는 꺽쇠 괄호를 쓸 것인가, HTML 엔티티로 변환합니다 따라서 캐릭터가 아닌 캐릭터가이 게임으로 변모합니다

보다 큰 성격은 이것으로 번역됩니다 큰 따옴표는 앰퍼샌드 따옴표로 번역되고, 등등 그리고 이것이 보장하는 것은 만약 사용자가 넣은 내용이 이름에서 실제로 꺾쇠 괄호를 포함하려고합니다 또는 이와 같은 것들은 기본적으로 거세 될 것입니다 그리고 그것은 뭔가로 번역 될 것입니다

그것은 HTML로 해석되지 않습니다 클라이언트 측 브라우저에서 그럼 그게 말이 되니? 이제는 이것이 완전히 완벽한 방어가 아니라는 것을 알고 있습니다 이 크로스 사이트 스크립팅에 대해 그리고 그 예가 보여주는 것처럼, HTML, CSS 및 JavaScript에 대한 이러한 문법 너무 복잡해서 혼동하기가 쉽지 않다 브라우저의 파서

그래서 예를 들어, 여러분이 이와 비슷한 것을 가지고 있다고 가정 해 봅시다 그리고 이것은 매우 일반적인 일입니다 장고와 같은 프레임 워크에서 그래서 당신은 일부 div 있습니다 그런 다음 클래스를 동적으로 설정하려고합니다

그래서 여러분은 클래스를 var에 설정하는 등등을합니다 그래서 아이디어는 장고가 이것을 처리 할 때, 그것은 현재의 스타일링이 무엇인지 알아 내야한다 여기에 네가 할 수있는 한가지는 아마도 공격자는 이와 같은 문자열을 제공합니다 그래서 공격자는 1 등급이라고 말할 것입니다

OK, 지금까지는 그렇게 좋았습니다 유효한 CSS와 같아 보입니다 표현 하지만 공격자가 시도한 다음 여기에 자바 스크립트를 넣으세요 그래서 그것은 onclick equals라고 말할 것입니다 – 그리고 나서 자바 스크립트 URL

그런 다음 여기에 일부 함수 호출을 입력하십시오 그래서 이것은 형식이 잘못되었습니다 브라우저는 아마도 여기에서 실패를 막아야 만합니다 그러나 문제는 만약 당신이 실제 웹 페이지의 HTML을 보았습니다 심지어 합법적 인, 호의적 인 사이트와 마찬가지로

사람들은 HTML을 해킹 할 수 없습니다 따라서 브라우저가 실패 스톱이되는 경우, 말 그대로, 당신이 즐기는 어떤 사이트도 이제까지 작동하지 않을 것입니다 세계에 실망하고 싶다면 내가 너를 도왔 으면 충분하지 않을거야 웹 사이트를 탐색 할 때 자바 스크립트 콘솔 열기 얼마나 많은 오류가 빠져 나가는 지보십시오 마찬가지로 CNN에 가서 얼마나 많은 오류가 발생하는지 확인하십시오

CNN은 기본적으로 일종의 작품이지만, 매우 혼란 스럽습니다 Acrobat Reader를 열면 너는 끊임없이 던지고있어 널 포인터 예외가 발생하면 삶에 대해 조금기만 당한다 그러나 웹에서 분명히 우리는 이것을 받아 들일 것을 배웠습니다 그래서 브라우저는 이런 것들에 대해 아주 관대해야하기 때문에, 그들은 실제로 형식이 잘못된 코드를 마사지하려고 시도 할 것입니다

합리적인 것처럼 보입니다 그리고 거기에는 보안 취약점이 있습니다 그래서 나는 이것에 대한 집의 요점을 짐작한다 그 내용은 위생적인 ​​내용의 일입니다 그래서 문자 그대로 아무것도없는 것이 낫습니다

실제로 많은 경우를 포착 할 수 있습니다 그러나 많은 경우에 완전한 방어가 아닙니다 그래서 실제로하는 것에 대해 생각할 수있는 한 가지 – 사실, 이걸 여기에 두자 덜 표현적인 마크 업을 사용하는 것에 대해 생각할 수도 있습니다 언어

그럼 그게 무슨 뜻이야? 그래서 HTML과 CSS, JavaScript는 [? 투어?] 완료 그들은 당신이 모든 종류의 재미있는 일을 할 수있게 해주지 만, 그렇지? 관객 : 귀찮게해서 죄송합니다 콘텐츠 위생 처리는 언제 작동하지 않습니까? 교수 : 내용은 언제입니까? 관객 : 대부분의 경우 작동하지 않습니다 교수 : 오, 그래 이 경우처럼, 예를 들어, 장고는 아마 정적으로 결정할 수 없을 것이다

이것은 나쁜 것입니다 이 특별한 경우에 하지만 그 잘못된 형식의 이미지 태그를 삽입 한 경우 나는 기본적으로 – 관객 :이 특별한 경우에, 나는 클래스 = 임무가 될 것으로 기대한다 따옴표 안에 그리고 그 일을 위해 어떤 효과도 가지지 말라 따라서 Django는 [INAUDIBLE] 코드를 시행 할 수 있습니다

교수 : 저기, 조금 까다 롭습니다 왜냐하면 우리가 모든 페이지가 쓰여졌다 고 가정한다면, 조금이라도 나를 다시 잡아 당겨 라 HTML 문법이 잘 지정되었다고 가정하면 CSS 문법이 잘 지정되었습니다 등등, 그럼 당신은 할 수 완벽한 파서가 될 세상을 상상해 보라 이러한 문제를 파악할 수 있어야한다

또는 어떻게 든 그것들을 정상적인 것으로 변환 할 수 있습니다 그러나 실제로 HTML 문법과 CSS 문법 잘 지정되어 있지 않습니다 그런 다음 브라우저는 사양을 구현하지 않습니다 그래서 그것은 바부 슈카 인형의 공포와 같습니다 그래서 저는 이것이 실제로이 개념에 들어 섭니다

근본적으로 당신이 말하는 것을 생각하기 때문에 글쎄, 우리가 무언가를위한 문법을 ​​가지고 있다면, 그게 뭔가 의미가있을거야 그리고 그것이 밝혀지면서, 당신이 붙으면 덜 표현적인 문법으로, 실제로는 훨씬 더 쉽습니다 콘텐츠 위생 처리 약간의 언어가 있습니다 마크 업 대신 Markdown이라고 부릅니다

[? 벽,?] 맞지? Markdown의 기본 아이디어 그 언어로 설계된 것입니다 예를 들어, 사용자가 의견을 제출할 수있게하고, 하지만 실제로는 빈 태그와 같은 것은 없지만, 그리고 애플릿 지원, 그런 것들 Markdown에서 실제로 훨씬 쉽습니다 네가 제안한 것을해라 그것은 합리적인 것 같아

첫눈에 문법을 모호하지 않게 정의한 다음 그 문법을 시행하십시오 따라서 위생 처리가 훨씬 쉬워졌습니다 본격적인 HTML, CSS, 및 JavaScript 그리고 어떤 의미에서 그것에 대해 생각해보십시오

이해 못하는 사이의 차이를 좋아해 C 코드 대 끔찍한 파이썬 코드 실제로 큰 차이가 있습니다 그 훨씬 더 풍부한 표현 언어를 이해하려고 노력합니다 왜냐하면 더 많은 일을 할 수 있기 때문입니다 표현력을 제한함으로써, 당신은 자주 보안을 강화하십시오

그것은 모두 의미가 있습니까? 괜찮아 당신이 상상할 수있는 또 다른 것 사이트 간 스크립팅 공격으로부터 보호하기 위해 CSP라는 콘텐츠 보안 정책을 사용하는 것입니다 CSP의 기본 아이디어는 웹 서버가 – 오 관객 : 네, 저는 Markdown 언어에 대해서 궁금합니다 모든 브라우저가이 언어를 구문 분석하는 방법을 알고 있습니까? 교수 : 아니, 아니 그렇다면 이러한 유형의 언어는 어떻게 될까요? 근본적으로 당신은 그들을 개종시킬 수 있습니다 HTML로 쌓아 올릴 수는 있지만 기본적으로는 아닙니다 일반적으로 브라우저에서 이해합니다 즉, 다른 의견 제출 시스템이 있습니다

내부적으로 Markdown의 내용을 표현합니다 그러나 페이지에 렌더링되기 전에, 그것은 기본적으로 Markdown 컴파일러로갑니다 Markdown 컴파일러는이를 HTML로 변환합니다 관객 : 알겠습니다 감사

[INAUDIBLE] 마크 다운이 아닐 수도 있습니다 최고의 속임수 [? Markdown을 사용 하시겠습니까?] [알아들을 수 없는] 교수 : 그래서 Markdown은 인라인 HTML을 허용합니다 내가 아는 한, 사용 중지하는 방법이 있습니다 컴파일러에서

나는 그것에 대해 잘못 될 수 있습니다 하지만 나는 깃발이 있다고 믿는다 당신은 그것을 없애기 위해 통과 할 수 있습니다 하지만 당신 말이 맞아 제한된 언어를 사용하는 경우 그러나 당신은 제한되지 않은 언어를 삽입합니다

그러면 테러리스트들이 이겼습니다 그래서 당신 말이 맞습니다 승인 네 보안을 강화하기 위해 할 수있는 또 다른 일 콘텐츠 보안 정책이라고하는 것입니다

내가 말했던 것처럼, 이것은 서버가 할 수있게 해주는 것입니다 웹 브라우저에 어떤 유형의 콘텐츠를 알리는 것입니다 되돌려 보내는 페이지에로드 할 수 있습니다 그리고 그 내용이 어디서 왔는지에 대해서도 말입니다 예를 들어, HTTP 응답에서, 서버는 이와 같은 것을 말할 수 있습니다

콘텐츠 보안 정책 헤더가 포함됩니다 그런 다음 기본값과 같은 것을 말할 수 있습니다 근원은 자기를 평등하게 할 것입니다 그리고 별표 mydomaincom에서도 받아 들일 것입니다

그럼이게 무슨 뜻입니까? 따라서 본질적으로 서버는 콘텐츠를 말하고 있습니다 이 사이트의 모든 내용은 도메인이 특정 페이지에 대한 것입니다 그리고 mydomaincom의 다른 하위 도메인 이것이 의미하는 것은 기본적으로 그 자체가 foo

com에 묶인다면, 그것이 보내는 서버의 근원이라고 가정 해 봅시다 이걸 브라우저로 돌려 보내 따라서 어떻게 든 크로스 사이트 스크립팅이 있다면 공격 및 페이지에 대한 참조를 생성하려고 시도, 예를 들어, barcom은 브라우저가 말하지만, OK, barcom은 자기가 아닙니다

Barcom은 이와 같은 일련의 도메인에도 속해 있지 않습니다 따라서 브라우저는 단지 말할 수 있습니다 나는 그 요청을 앞으로 허용하지 않을 것이다 그래서 이것은 실제로 매우 강력한 메커니즘입니다

실제로 더 세분화 된 컨트롤을 지정할 수 있습니다 이리 당신은 말할 수 있습니다, 내 이미지는 여기에서 온다 내 스크립트는 여기서부터 시작해야합니다 이것은 실제로 꽤 좋다

이것에 대해서 좋은 점도 하나 있습니다 실제로 인라인 JavaScript를 방지한다는 것입니다 따라서 스크립트 태그와 리터럴 자바 스크립트를 사용할 수 없습니다 및 닫기 스크립트 태그 소스가있는 스크립트 태그에서 모든 것을 가져와야합니다

그래서 이것을 통해 검증 될 수 있습니다 또한 콘텐츠 보안 정책 eval과 같은 위험 요소를 방지합니다 따라서 eval은 기본적으로 웹 페이지를 허용합니다 동적으로 생성 된 JavaScript 코드를 검사합니다 따라서 CSP 헤더가 지정된 경우, 브라우저는 evals를 실행하지 않습니다

그렇게 모든 것이 의미가 있습니까? 관객 : 그것은 일종의 임시 방편이기 때문에, 그것은 그것 [부적절한]의 완전한 세트와 같은 것입니까? 교수 : 아닙니다 전체 리소스 목록이 있습니다 그것은 실제로 그것을 보호합니다 그래서 이것은 가장 포괄적 인 유형 보호 장치와 같습니다 너는 얻을 수 있었다

하지만 내가 말했듯이, 실제로 당신이 CSS를 어디에서 가져올 수 있는지, 다른 것들을 잔뜩 들었습니다 관객 : 그러나 진실을 막는 데는 그럴 것 같습니다 시스템의 [INAUDIBLE]처럼 [INAUDIBLE] 다른 것들이 있습니까? 교수 : 그렇습니다 그래서 항상이 완전성의 문제가 있습니다

예를 들어, eval만이 유일한 방법은 아닙니다 JavaScript는 실제로 코드를 동적으로 생성 할 수 있습니다 예를 들어 함수 생성자가 있습니다 설정 시간 초과를 호출 할 수있는 특정 방법이 있습니다 문자열을 전달합니다

그런 식으로 코드를 평가할 수 있습니다 그래서 나는 CSP가 사실 벡터를 폐쇄한다고 믿는다 게다가 그러나 당신이 묻는다면, 이것은 조건면에서 입증 할 만합니다 그것이 분리시키는 것, 아니 그리고 나는 이러한 해결책들 중 어느 것도 생각하지 않는다

입증 될 만하다 관객 : CSP에 관한 한 가지 흥미로운 점 모든 인라인을 허용하지 않도록 설정할 수 있다는 사실입니다 [? dom?] 스크립트를 실행합니다 교수 : 네 맞습니다

그래, 그래 관객 : 어느 [? 도움이됩니까?] [INAUDIBLE]을 (를) 위생 처리해야합니다 교수 : 네 관객 : [INAUDIBLE]은 공격자가 – 교수 : 그래서 몇 가지 도움이됩니다 그러나 그것은 여전히 ​​[INAUDIBLE]이 eval을 사용할 수있게합니다

그래서 그걸 제거하려고하는 것이 중요합니다 그 모든 것들을 동적으로 그 모든 인터페이스 [? 동적 사용?] 코드 생성 관객 : 출처와 함께 태그를 나열하지만 그 다음에 인라인 코드, 표준화 된 [INAUDIBLE]이 (가) 있습니다 모든 브라우저는 – 교수 : 네 그래서 일어날 일은 인라인 코드 무시해야합니다

브라우저는 항상 코드를 가져야합니다 원본 속성에서 모든 브라우저가 그렇게하는지 실제로 모르겠습니다 나는 실제로 개인적으로 경험했다 브라우저는 다른 동작을 나타냅니다 [? 그걸로

?] 2 년 전이었는데, 확실하지 않습니다 그리고 그래 일을하는 것에 대해 염두에 두어야 할 것이 하나 있습니다 웹 보안에서 어떤 의미에서, 그것은 거의 자연 과학과 같습니다 그래서 사람들이 실제로 이론을 제안하는 것과 같습니다

브라우저의 작동 방식에 대해 알아보십시오 그리고 나서 당신은 그들이 그것을하는 것을 보러갑니다 그리고 그것은 약간 실망 스러울 수 있습니다, 우리가 배웠기 때문에, 예, 알고리즘, 증명, 그런 것들 그러나이 브라우저들은 너무나 나쁜 행동을합니다 시간의, 아마 또는 어쩌면 대답은 어쩌면

그리고 [? 너 우리가 보자 그들은 기능을 계속 추가합니다 그것에 대해 귀하의 질문에 다시, 이 모든 것들이 확실하게 완성 되었습니까? 나는 웹 벤더가이 개념을 만들어 냈다고 생각했다 입증할만한 브라우저 인 [INAUDIBLE] 기본적으로, 그들이하려고하는 것은 공격자보다 한 걸음 앞서 나가십시오

그리고 우리는 강의에서 더 많은 예를 보게 될 것입니다 그래 그래서 CSP는 실제로 꽤 좋습니다 또 다른 유용한 점은 서버가 이것을 설정할 수 있다는 것입니다 X-Content-Type-Options라고하는 HTTP 헤더, 그리고 말할 수 있습니다, nosniff

그래서 이것이 의미하는 바는 브라우저가 그 중 일부를 수행하는 것에서부터 따옴표 붙이기, 인용 부호를 붙이지 않고, 유용한 최적화, 우리가 마지막 강연을 토론했던 것처럼, 그것이 어디에서 말할 것인가, a-ha, 파일 확장명이 일치하지 않습니다 그리고 실제 [? 바이트?] 나는 그 내용에 냄새가났다 그러니 어떻게 든이 내용을 마사지하겠습니다 어떤 다른 것 갑자기 당신은 야만인들에게 열쇠를주었습니다

왕국에 그래서이 헤더를 기본적으로 말하도록 설정할 수 있습니다 브라우저, 그렇게하지 마십시오 이렇게하면 완화에 유용 할 수 있습니다 어떤 종류의 공격뿐입니다

괜찮아 그래서 그것은 일종의 빠른 설문 조사입니다 이러한 교차 사이트 스크립팅 취약점 중 이제 공격에 대한 또 다른 인기있는 벡터를 살펴 보겠습니다 그리고 그 벡터는 SQL이 될 것입니다 따라서 이러한 SQL 주입 공격에 대해 들어봤을 것입니다

그래서 이러한 공격은 사실을 이용합니다 백 엔드에서는 많은 웹 사이트에 대해 어떤 유형의 데이터베이스가 있습니다 그래서 동적으로 페이지를 구성합니다 사용자에게 표시되면 해당 백엔드 서버로 발행되는 일부 데이터베이스 조회 그래서 이렇게 보인 쿼리가 있다고 상상해보십시오

그래서 당신은 SELECT 별표를합니다 이 쿼리에서 모든 값을 FROM 일부 특정 테이블, 사용자 ID 필드 지정된 값과 같습니다 잠재적으로 신뢰할 수없는 소스로부터 웹을 통해 그래서이 시점에서 우리 모두는이 이야기가 어떻게 끝나는 지 알 것입니다 그것은 매우 심하게 끝납니다 생존자가 없습니다

그래서 기본적으로 이것이 신뢰할 수없는 사람에게서 오는 것이라면, 그럼 모든 종류의 [할 수 있습니까? 치커?] 물건은 여기 그래서 당신이 할 수있는 한 가지는 당신이 바보가되고 싶다면, 이 문자열을 0으로 설정할 수 있습니다 그런 다음 DELETE TABLE과 같은 것입니다 그럼 여기서 어떻게됩니까? 그래서 기본적으로 데이터베이스 서버는 말할 것입니다 OK, 사용자 ID를 0으로 설정합니다

다음은 일종의 새로운 명령입니다 DELETE TABLE 알았어, 응, 너의 테이블이있어 그리고 너 끝났어 실제로 바이러스 이미지가 있습니다

몇 년 전에 돌아갔다 그것이 사실인지 많은 사람들처럼 불투명합니다 이러한 바이러스 이미지 중 하지만 독일 사람들 실제로 0이라고 말한 번호판을 가지고 있었다 DELETE TABLE

[웃음] 아이디어는 보안 카메라, 그들은 OCR, Optical Character Recognition, 너의 번호판이 무엇인지 알아 내려고 SQL 데이터베이스에서 그리고 주변에 이미지가 떠있었습니다 이 Volkswagens 사람들은 이것은 그들의 번호판으로 그게 효과가 있는지 나는 모른다 웃긴다

그래서 저는 그것이 사실이라고 믿고 싶습니다 그러나 누가 압니다 그러나 당신은 그것의 기본 아이디어를 얻습니다 그래서 다시 한 번, 아이디어는 당신이 원하는 것입니다 당신이 얻는이 내용을 확실히 살리기 위해서 이러한 신뢰할 수없는 출처로부터

그리고 일종의 정렬이있을 수 있습니다 직선적 인 일들은 잘 작동하지 않습니다 그럼, 네가 생각할지도 모르지, 좋아, 그럼 왜? 여기에 다른 따옴표를 넣을 수는 없습니까? 여기에 다른 따옴표를 써서 공격자가 제출하는 것입니다 문자열로 묶인 다고요? 그래서 이것은 작동하지 않습니다 왜냐하면 공격자는 항상 자신의 공격 문자열 안에 따옴표를 넣으십시오

이렇게 많은 시간, 이러한 종류의 해피 해킹 당신이 생각하는 보안을 당신에게 줄 수는 없습니다 그래서 여기 해결책은 당신이 필요로하는 것입니다 데이터를 엄격하게 인코딩해야합니다 그리고 다시 한 번, 그것은 당신이 정보를 얻을 때 그것을 의미합니다 신뢰할 수없는 출처에서 그것을 붙이기 만하면 안된다

시스템의 종류 그대로입니다 예를 들어, 실제로 네가 생각하는 샌드위치 나 뭐니 뭐니해도 도망쳐 라 너는 실제로 들어갔다 예를 들어, 다음과 같은 Escape 함수를 사용하고자합니다 어쩌면 세미콜론을 막을 것이다

운영자가 원시 형식 및 이와 유사한 것으로 표시되지 않도록합니다 그리고 많은 웹 프레임 워크들 Django와 같은 것들은 실제로 라이브러리를 내장 할 것입니다 SQL 쿼리에 대해 유사한 문자 이스케이프 이 물건 중 일부를 막으려 고합니다 실제로 이러한 많은 프레임 워크가 있습니다 개발자가 직접 인터페이스하지 않도록 권장 데이터베이스와

그래서 장고 자체가 제공 할 것입니다 당신을 위해 위생 처리를하는 몇 가지 고수준 인터페이스 이 삐걱 거리는 구석의 경우를 처리합니다 그러나 성능, 성능, 성능 때때로 사람들은 이러한 웹 프레임 워크 너무 느립니다

그래서 당신은 여전히 ​​백 엔드에서 많은 시간을 보게 될 것입니다 사람들은 여전히 ​​원시 SQL 쿼리를 만들 것입니다 그리고 그것은 문제를 일으킬 수 있습니다 그래서 당신도 상상할 수 있습니다 웹 서버가 경로 이름을 사용하는 경우 문제가 발생합니다

신뢰할 수없는 이미지로부터 따라서 서버의 어딘가에 있다고 상상해보십시오 너는 이렇게 해 너는 열린 전화를 가지고있다 그리고 나서 당신은 당신이 가고 있다고 말합니다

WWW 디렉토리에서 읽기 거기에있는 이미지 하위 디렉토리에서 읽으려고합니다 그리고 나서 파일 이름을 읽으면 다시, 사용자가 제공합니다 그래서 우리는 [토론의 일부에서 보았던 것처럼? 트로트?] 이 파일 이름이 한 점의 점들과 같은 것으로 캐릭터? 따라서 신중하지 않으면 신뢰되지 않은 존재입니다 기본적으로 glub, glub, glub, glub, etc 비밀번호로 이동하여 여기에 악을 행할 수 있어야합니다

다시 한 번, 웹을 사용할 수 있기를 원한다면 서버 또는 웹 프레임 워크에서 이러한 위험한 문자를 탐지 할 수 있으려면, 그들을 막기 위해 어떤 방법으로 도망쳐 라 일종의 원시 명령을 실행합니다 그래, 모두 똑똑해 승인 콘텐츠의 토론에서 위생 처리, 이제 쿠키에 대해 조금 이야기 해 보겠습니다

그래서 쿠키는 매우 대중적인 방법입니다 바인딩하는 세션 관리를 할 사용자가 자원의 일부 집합에 이는 서버 측에 존재합니다 그리고 장고와 같은 많은 프레임 워크는 [? 동물원?] 이 수업에서 볼 수있는 것은 실제로 무작위 세션 ID를 쿠키 안에 넣으십시오 그래서이 세션 ID는 색인입니다 어떤 서버 측 테이블에

따라서 세션 ID를 입력하면됩니다 그리고 이것은 사용자 정보가있는 곳입니다 결과적으로이 세션 ID와 쿠키는 매우 민감한 개체입니다 그래서 많은 공격이 이루어집니다 쿠키를 훔쳐 가야한다

그 세션 ID를 얻으려면 그리고 마지막 강연에서 논의한 것처럼, 동일한 원산지 정책이 어느 정도까지 당신을 도울 수 있습니다 이러한 쿠키 훔치기 공격 중 일부에 대해서는 출발지 기반 규칙이 있기 때문에 쿠키로 임의로 변조되는 것을 방지합니다 하지만 조금은 미묘한 점이 하나 있습니다 도메인 또는 하위 도메인을 공유해서는 안된다는 것입니다

당신이 믿지 않는 사람과 지난 강연에서 논의한 것처럼, 이런 종류의 아주 미묘한 규칙들이 있습니다 동일한 도메인 또는 가능성이있는 두 가지 기원 일부 하위 도메인 관계는 실제로 서로의 쿠키에 액세스하십시오 그래서 당신이해서는 안되는 도메인을 신뢰한다면, 그 도메인은 직접적으로 같은 일을 할 수 있습니다 그 쿠키에 세션 ID를 설정하십시오 액세스 할 수 있습니다

그리고 그것은 공격자를 허용하는 것과 같은 일을 할 수 있습니다 사용자가 공격자의 세션 ID를 사용하도록 강제 고르는 그런 다음 예를 들어 공격자는 사용자의 Gmail 쿠키를 설정합니다 사용자가 Gmail로 이동하여 이메일을 입력합니다 나중에 공격자는 그 쿠키를 사용할 수 있습니다 또는 구체적으로 해당 세션 ID를 사용하십시오

Gmail을로드 한 다음 Gmail에 액세스하십시오 그 또는 그녀가 희생 된 사용자 인 것처럼 따라서이 쿠키를 사용하면 많은 미묘한 차이가 있습니다 세션 관리 용 쿠키에 관해 더 많은 이야기를 할 수 있습니다 우리는 오늘 그것과 마지막 강의에 대해 약간 의논 할 것입니다

쿠키를 없애도 될까요? 쿠키는 가치가있는 것보다 더 어려워 보입니다 처럼 [? 드리블 ?] 그래서 우리는 단지 이러한 쿠키를 가질 수 없습니까? 상상할 수있는 한 가지는 기본적으로 상상할 수있는 것입니다 무국적자 쿠키에 대한 개념이있다 어떻게 든 세션의 개념을 완전히 없애는 것 이 불쾌한 공격 벡터를 방지하고 모든 토론에서 널리 퍼져있는 것처럼 보입니다

우리가 가지고있는 기본 아이디어는 무국적자가되기를 원한다면, 그러면 이것은 본질적으로 당신이 가지고있는 것을 의미합니다 모든 요청을 인증합니다 쿠키에 대한 좋은 점 그들이 어디를 가든 기본적으로 당신을 따라 간다는 것입니다 그래서 한 번 인증하고 나서 이후에 요청할 때마다 이 작은 토큰이 있습니다

하지만 그걸 없애고 싶다면, 지금 당장 근본적으로 당신의 권위에 대한 증거가 있어야합니다 당신이하는 모든 요청에 그리하여 당신이 상상할 수있는 한 가지 방법이 있습니다 이것은 MAX 나 Message라는 것을 사용하는 것입니다 인증 코드

그리고 이러한 MAX 중 하나에 대해 생각하는 기본적인 방법은, 키를 가져 오는 해시와 같습니다 그래서 메소드 인증 코드 일부 키와 일부 메시지의 해시입니다 그래서 기본적인 아이디어는 클라이언트, 사용자, 서버가 몇 가지 비밀 키 k를 공유하려고합니다 그래서 클라이언트는 그 키를 사용하여 서명을 생성합니다 서버에 보내는 메시지를 통해 그리고 키를 알고있는 서버는, 그런 다음이 동일한 기능을 여기에서 사용할 수 있습니다

서명이 올바른지 확인합니다 승인 그럼 어떻게 작동하는지에 대한 매우 구체적인 예를 살펴 보겠습니다 따라서 이러한 유형을 사용하는 하나의 실제 서비스 상태없는 쿠키는 Amazon Web Services입니다 그래서 x3과 같습니다

기본적으로 아마존의 AWS는 각 사용자에게 두 가지를 제공합니다 해당 사용자에게 비밀 키를 제공합니다 그리고 이것은 k와 동일합니다 저기서 우리가 논의하고 있었던 그리고 그것도 그들에게 – 생각 만해라 AWS 사용자 ID와 같습니다

이 부분은 비밀이 아니지만이 부분은 비밀입니다 따라서 HTTP를 통해 AWS에 요청을 보내려 할 때마다 특수 형식으로 보내야합니다 따라서 GET 요청의 첫 번째 행을 갖게됩니다 그래서 몇 장의 사진에 액세스하고 싶습니다 여기에 놀라움이 없습니다

그리고 나서 당신은 당신은 그것을 얻기를 기대합니다 그것은 매우 중요하지 않습니다 따라서 여기에는 AWS 서버가 있습니다 데이트 할거야 아마도 6 월 4 일 월요일 일 것입니다

도대체 무엇이 그리고 나서 당신은 본질적으로 권한 부여 필드 그리고 이것이 메시지 인증 코드가 들어오는 곳입니다 그래서 본질적으로, 이것은 어떻게 생겼습니까? 여기에 문자열이 있습니다 이것은 사용자 ID 인 액세스 ID를 나타냅니다 그리고 여기에 뭔가가 있습니다

다른 겉으로보기에 임의의 문자 그리고이 모든 것들이 서명입니다 여기서이 메시지 인증 코드를 사용합니다 그 서명은 어떻게 생겼습니까? 따라서 세부 사항은 조금 복잡합니다 하지만 기본적으로이 서명은 문자열을 통해 발생합니다

이 요청의 세부 정보를 캡슐화합니다 그래서 기본적으로 할당 된 문자열 이런 식으로 보입니다 그래서 HTTP 동사를 입력하십시오 그래서이 경우 동사는 GET입니다 그런 다음 [? indy5?] 체크섬 메시지 내용의 그런 다음 콘텐츠 유형도 지정합니다

그래서 html 또는 이미지 또는 뭐든간에 그리고 데이트 신청 그리고 나서 본질적으로 경로 인 자원 이름 당신이 여기에서 볼 수 있습니다 다른 말로하면이 문자열은 여기에 있습니다 여기에있는 H MAC로 전달하는 메시지입니다

그리고 서버는이 모든 것을 볼 수 있습니다 요청에 일반 텍스트로 그래서 이것이 서버를 허용합니다 그 메시지 인증을 확인하는 코드가 정확했다 왜냐하면 서버가 사용자와 키를 공유하기 때문입니다 그래서 그것은 서버가 그런 종류의 것들을 유효하게하는 것을 허용합니다

그렇게 모든 것이 의미가 있습니까? 관객 : [INAUDIBLE]? 교수 : 오 따라서이 경우 콘텐츠의 경우, 아마도 빈 문자열처럼 아무것도 될 수 없습니다 하지만 그곳에는 게시물이나 그와 비슷한 것이 있다고 상상할 수 있습니다 실제로 HTTP의 데이터를 가지고 있습니다 관객 : 일종의 불행한 [비 숙녀] 요즘 선택

교수 : 그래서 그들은 그렇게한다고 믿습니다 어제 Amazon 문서를 확인했습니다 그래서 나는 그들이 그것을 사용한다고 생각합니다 그러나 나는 생각한다 나는 틀릴 수도 있지만, 나는 그들이 실제로 생각한다

여기에 더 강력한 해시를 사용하십시오 그래서 도움이됩니다 하지만 당신 말이 맞아 [? Indy5?]가 최선이 아닙니다 관객 : [무관 한]이 작품입니다

교수 : 좋습니다 그래서 내가 너를 도울 수있게, 잘하면, 내가 너를 혼란스럽게 한 녀석이긴하지만 처음에는 기본 아이디어는 우리가 원하는 것입니다 이 영구 쿠키의 개념을 없애려면 항상 사용자를 따라 다니십시오 이제 문제는 서버가 어떤 클라이언트와 대화하고 있는지 파악할 수있는 방법이 필요합니다 그래서 우리가 할 일은 각 고객이 서버와의 고유 한 키

그래서 기본적으로 클라이언트가 메시지를 보낼 때마다 서버에 클라이언트가 있습니다 전에 메시지를 보낸 다음 보내기 이 특수 암호화 연산, 이 작업의 결과는 여기에 있습니다 관객 : 오, 알겠습니다 [INAUDIBLE] 그리고 다시 해쉬합니다 교수 : 네

그래서 근본적으로, 첫번째 approximation까지, 규칙적인 세계에서의 상상처럼, 좋아, 여기이 쿠키가 될거야 승인 대신 하지만 이제 쿠키를 없애고 있습니다 여기에 일반 텍스트 메시지가 있습니다 그리고 여기에이 암호가 있습니다

기본적으로 서버가 알아낼 수 있습니다 이 사람이 누구에게서 왔는지 따라서 서버는 사용자가 누구인지 알고 있습니다 깨끗한 상태로 내장 그건 비밀이 아니지, 그렇지? 하지만 기본적으로 서버 to say, 아하, 나는이 비밀 키를 알고이 사용자 이걸 만들려면 사용 했어야했다

사실, 실제 사용자입니다 관객 : 좋았어 승인 감사 관객 : 그렇다면 공격자가 키를 찾지 못하게하는 것은 무엇입니까? 이 비밀 키는 어디에 있습니까? 교수 : 네, 좋은 질문입니다

따라서 많은 경우 AWS 용 클라이언트 브라우저가 아니지만 클라우드에서 실행중인 일부 VM, 예를 들면 따라서 VM 및 VM 통신 만 볼 수 있습니다 사용자들도 상상할 수 있습니다 이러한 링크를 일종의 손으로 정렬하거나 어떻게 든 HTML에 삽입 할 수 있습니다 그래서 당신은 이것과 같은 것입니다 – HTML 내부 또는 자바 스크립트 소스 코드를 사용하면 이런 요청을 만드십시오

그래서 나에게 당신에게 능력을주는 것과 거의 비슷합니다 그래서 내가이 일들 중 하나를 주면, 기본적으로 저를 대신하여 요청할 수 있습니다 관객 : 그렇다면 일반 고객의 MAC은 [INAUDIBLE]입니까? 교수 : 정상적인 경우 – 브라우저와 같은 뜻인가요? 청중 : 일반 사용자의 경우 교수 : 음, 내말은, 당신은이 질문들에 빠지게됩니다 좋아, 열쇠는 어디에서 살지? 였다 [? 어떤 종류의 것?] 그는 물었다

그래서 어느 정도 열쇠가 사는 곳의 문제 실제로 슈퍼, 슈퍼 중요합니다 키가 쿠키처럼 쉽게 도난 당할 수 있기 때문에, 그렇다면 우리는 일종의 사각형으로 되돌아갑니다 그래서 많은 경우에,이 물건은 실제로 단지, 내가 말했듯이, 일종의 서버 대 서버, 클라우드 어딘가에있는 VM에서 VM에 이르기까지 따라서 응용 프로그램 개발자가 실행됩니다 AWS에 저장된 물건을 여러 가지 아웃소싱하는 VM입니다

관객 : 그럼 당신은 [INAUDIBLE] 그런 종류의 나쁜 예방 방법이 아닙니다 내말은, 그들은 네트워크 대기 시간을 가지며, 너무 세밀한 구속 조건이 될 수는 없습니다 그들이 씌우고있는 것 공격자가 동일한 요청을 다시 신속하게 보내면 사용자가 후에 [INAUDIBLE] 할 수 없습니까? 교수 : 예, 예, 예 보안 타임 스탬프가 몇몇 사람들의 박사 학위 논문처럼

그러나 당신이 정확하게 말하면 그것은 마치 조잡한 예입니다 6 월 4 일 월요일에 이렇게 말한 것을 상상해보십시오

그런 다음 어떻게 든 공격자가 액세스 할 수 있다면 이 모든 일에 그것에 대해 다른 점은 아무것도 없습니다 그래서 아무 [? 노크,?] 그런 임의의 물건, 그렇다 그 요청은 [INAUDIBLE] 일 수 있습니다 이제 AWS가 실제로하는 일 중 하나는 실제로 만료를 포함 할 수 있습니까? 이걸로 데이트하세요 당신이 실제로 할 수있는 한 가지는 만료 필드의 정렬을 추가하십시오

그 일을 지명하게하십시오 그런 다음 나는 여러 사람들에게 그 참조를 넘겨 줄 수있다 그의 질문에 대한 대답으로 말한 것처럼, 그것은 기능으로 작동합니다 그런 다음 서버는 만료 날짜를 확인할 수 있습니다 실제로 그것을 본 다음 실제로는 – 관객 : 그러나 만료일 앞으로 200 밀리 초 또는 이와 비슷한 것입니다 공격자가 [INAUDIBLE] 대기 시간 동안 오래 동안, 그런 다음 그들은 [부적절한] 하나 대신에 2 부

교수 : 네 맞습니다 맞습니다 그래, 공격자가 어떻게 든 – 예를 들어, 네트워크 공격자와 같이, 이 일들이 전선을 지나가고있는 것을보고 있습니다 그리고 당신 말이 맞습니다

만료일에 충분한 흔들림 방이있는 경우, 그러면 그들은 그 공격을 정확하게 할 수 있습니다 맞습니다 승인 그래서이 상태없는 쿠키가 어떻게 작동하는지에 대한 개요입니다 재미있는 질문 하나가 있습니다

당신은 생각할지도 모르니, 음, 로그 아웃한다는 것은 무엇을 의미합니까? 이 종류의 쿠키가 있습니까? 그리고 대답은 당신이 정말로 로그 아웃하지 않는다는 것입니다 내 말은, 네가이 열쇠를 가졌다는거야 요청을 보낼 때마다 보내십시오 이 친구를 여기에 포함 시켜라 그리고 나서 당신은 갈 준비가되었습니다

이제 서버가 할 수있는 한 가지는, 예를 들어, 하지만, 당신의 열쇠를 취소합니다 그러면 서버가 사용자의 키를 취소합니다 그런 다음이 중 하나를 생성 할 수 있습니다 하지만 거기에 메시지를 보낼 때, 서버가 말하기를, 아하, 당신의 사용자 ID가 무엇인지 압니다 너는 폐지 되었으니 너의 요구를 존중하지 않을거야

그러나 그것은 약간 흥미 롭습니다 그리고 우리가 사물에 대해 더 이야기 할 때 취소 SSL과 마찬가지로 항상 까다로운 문제입니다 인간 사용자로부터 권위를 빼앗다 종종 그들에게주는 것보다 훨씬 어렵다 처음에는 이것이 이러한 종류의 기본 아이디어입니다

상태없는 쿠키 그래서 몇 가지 다른 것들도 있습니다 당신이 피하고 싶다면 사용할 수있는 인증을 구현하기위한 전통적인 쿠키 그래서 당신이 할 수있는 한 가지는 실제로 DOM 저장소를 사용하여 클라이언트 측 인증을 보유하고 있습니다 정보 이것은 "대안"을 말합니다

그것을 읽으십시오 ?] 그래서 당신이 할 수있는 한 가지는 DOM 저장소를 사용하는 것입니다 그 세션 상태의 일부를 유지하는 것 당신은 보통 쿠키를 넣을 것입니다 마지막 강의를 기억한다면, DOM 저장소는 본질적으로 핵심 가치 인터페이스입니다 브라우저가 각 원점에 제공하는 그래서 당신은 GET과 PUT 둘 다 key와 eval로 말할 수 있습니다

[? 문자열 ?] 그래서 인증을한다고 상상할 수 있습니다 거기 안쪽에 자, 이것에 대한 좋은 점은 실제로 DOM 저장소 존경심에서 훨씬 덜 엉뚱한 규칙을 가지고있다 동일한 원산지 정책으로 그래서 그것이 쿠키라면, 당신은 할 수 있습니다

이러한 모든 트릭과 하위 도메인 및 그런 것들 좀 이상해 DOM 저장소는 실제로 하나의 원본에 엄격하게 묶여 있습니다 이 하위 도메인 확장을 수행 할 수 없습니다 그 모든 종류의 물건

Meteor와 같은 프레임 워크는 DOM 저장소를 사용합니다 바로이 이유 때문입니다 하지만 이제 인증을 저장하려면 DOM 저장소의 정보, 그 다음엔 JavaScript 코드를 직접 작성하여 실제로 전달해야합니다 서버에 대한 인증 정보 [? 암호화?]가 필요합니다 등등

그래서 그것이 당신이 할 수있는 한가지입니다 당신이 할 수있는 또 다른 일은 실제로 클라이언트 측 인증서를 사용하십시오 예를 들어, x509 형식과 같습니다 그리고이 인증서들에 대해 좋은 점이 무엇입니까? 기본적으로 JavaScript에는 명시적인 인터페이스가 없습니다

이런 일에 접근하십시오 쿠키와 달리 항상이 군비 경쟁이있는 곳 이 이상한 동일 출처 버그를 찾기 위해, 그 물건에 대한 명시적인 JavaScript 인터페이스는 없습니다 보안 관점에서 볼 때 매우 좋습니다 제가 간단히 언급 한 한 가지 문제 우리는 나중에 강의에서 더 자세히 살펴볼 것입니다 그것 [? 가게?] 이런 일에 힘든 일입니다

따라서 사용자가 조직을 떠나면, 어떻게 그들의 인증서를 되시겠습니까? 그리고 조금 까다로워집니다 또한, 이러한 것들은 훌륭한 사용성을 가지고 있지 않으며, 누가 인증서를 여러 장 설치하려고하기 때문에 당신이가는 각 사이트에 대해? 결과적으로 이러한 것들은 많은 마찰을 가지고 있습니다 이들은 기업을 제외하고는 인기가 많지 않습니다 또는 보안에 민감한 조직 일 수 있습니다 괜찮아

그래서 쿠키에 대한 토론을 마칩니다 이제 프로토콜의 취약점에 대해 이야기 해 봅시다 웹 스택에 그래서 재미있는 공격의 종류가 하나 있습니다 도중에이 모든 버그가 있다는 것입니다

다른 브라우저 구성 요소가 URL을 구문 분석하고, 예를 들면 그렇다면 URL 구문 분석을 사용하면 어떻게 문제가 생길 수 있습니까? 그래서 우리는 다음과 같은 URL을 가지고 있다고 가정합니다 HTTP는 examplecom에서 제공됩니다 그리고 명시적인 포트가 80이라는 것을 지정합니다

그리고 몇 가지 알려지지 않은 이유로, 이 @ 문자를 여기에 삽입합니다 그래서 질문은 글쎄, 원점은 무엇인가? 이 특정 URL? 결과적으로 플래시는 이 호스트 이름 부분이 examplecom이라고 말하면됩니다 그러나 브라우저가이를 구문 분석 할 때, 원산지의 호스트 이름 부분 실제로 foocom이었습니다

그래서 이것은 분명히 나쁜 것입니다 혼란스러워하는 두 개의 다른 실체가있다 동일한 자원의 출처에 대해 그러면 모든 종류의 불쾌한 문제에 빠질 수 있습니다 예를 들어, 플래시 코드는 악의적 일 수 있으며 examplecom에서 물건을 다운로드 할 수 있습니다

그것이 foocom에서 페이지에 삽입 된 경우, 그러면 거기에 악한 일을 할 수 있습니다 그리고 examplecom에서 코드를 가져옵니다 foo

com의 권한으로 실행하십시오 복잡한 구문 분석 규칙이 많이 있습니다 그렇게하면 인생이 어려워집니다 이것은 계속되는 주제입니다 우리가 방금 내용 위생 처리를 통해 보았던 것처럼 – 그래서 그것은 훨씬 더 나은 기본 아이디어입니다

이런 종류의 물건에 대한 간단한 파싱 규칙을 갖기 돌이켜 보면 그렇게하기가 어렵습니다 HTML이 이미 있기 때문에 그래서 모두 wam bulance에 탑승했습니다 그럼 다음은 실제로 내 시간으로 가장 좋아하는 보안 취약점

그래서 그것은 기본적으로 브라우저를 공격하는 방식입니다 [? 규칙 1?] JAR 파일, 기본적으로 Java 애플릿 그래서 2007 년, 제 생각 엔 2007 년입니다 그래서 lifehackercom – 위대한 웹 사이트 네가 그것에 간 적이 없다면 Lifehackercom은 기본적으로 설명합니다

이미지 안에 ZIP 파일을 삽입하는 방법 이제 누가 너를 시도하는지 분명치 않다 이렇게하면 숨길 수 있습니다 그러나 Lifehacker는 당신이 그렇게 할 수 있다고 말합니다 그래서 기본적으로 그들이 활용하는 것은 사실입니다

예를 들어, GIF와 같은 이미지 형식을 보면, 일반적으로 파서가 작동하는 방식은 파서입니다 위, 아래에서 작동합니다 따라서 헤더의 정보를 찾습니다 그리고 나머지 비트들에 대해 여기에 일종의 계산을합니다 이제 흥미로운 점은, 밝혀진 바와 같이, 일반적으로 ZIP 파일을 조작하는 프로그램 아래에서 위로 작업하십시오

그래서 그들은 파일의 바닥 글에 몇 가지 정보를 찾습니다 그런 다음 내부의 내용을 추출하려고합니다 Lifehacker가 기본적으로 말했던 것 합병시 ZIP 파일을 숨기려면 또는 이와 비슷한 것을 사용하면 실제로 GIF를 게시 할 수 있습니다 여기에이 ZIP 파일이 있습니다 Flickr 또는 기타의 모든 유효성 검사를 통과합니다

이미지로 실제로 브라우저에 이미지로 표시됩니다 아하,하지만 당신은 숨겨진 진실을 알고 있습니다 이 파일을 여기로 가져 가면 압축을 풀어서 압축을 풀 수 있습니다 거기에 [INAUDIBLE] 정보의 압축을 풉니 다

좋아, 이건 마치 싸구려 가게 같아 장난 그래 그거 괜찮다 이제 공격자는 절대로 자지 않습니다 그들은 우리의 삶을 망치고 싶다

그래서 그들은 무엇을 깨달았습니까? 그들은 JAR 파일이 기본적으로 유래 물이라는 것을 알고 있습니다ZIP 형식 그래서 이것은 당신이 실제로 GIF 또는 이미지를 만들었습니다 JAR 파일, 실행 가능한 JavaScript 코드, 그것의 바닥에

그래서 사람들은이 공격을 호출했습니다 그들은 그것을 GIFAR 공격이라고 불렀습니다 [웃음] 절반의 GIF, 절반의 JAR, 모든 악 이것은 대단했기 때문에 그래서 당신이 할 수있는 것이 무엇을 의미합니까? 음, 실제로는 아주 미묘합니다

사람들이 이것을 처음 발견했기 때문에, 그들은 그것이 훌륭하다라고 생각했다 그러나 그들은 아주하지 않았다 그것을 악용하는 방법을 알아라 그러나 밝혀진 바와 같이 다음과 같은 일을 할 수 있습니다 먼저 무엇을 어떻게 만드십니까? 당신은 CAD를 사용합니다

말 그대로 아무 [? 속임수?] 네가해야할 일이야 가져가, 가져가, CAD 해 붐, 당신은 GIF / JAR을 가지고 있습니다 그래서 일단 그렇게하면, 당신은 무엇을 할 수 있습니까? 음, 일부 민감한 사이트가 있습니다 사용자가 데이터 제출을 허용하고, 임의의 유형의 데이터는 아닙니다

그래서 [불충분 한] Flickr 또는 무엇인가 이런 식으로, 당신이 임의의 ActiveX를 제출하는 것을 허용하지 않을 수도 있습니다 또는 무엇이든, 임의의 HTML 그러나 그것은 당신이 심상을 복종시키는 것을 허용 할 것이다 그래서 당신이 할 수있는 일은 이러한 것들 중 하나를 구성하는 것입니다, 이러한 민감한 사이트 중 하나에 제출하십시오 이미지를 제출할 수 있습니다

그리고 나서 당신은 무엇을 할 수 있습니까? 음, 다음으로해야 할 일은 네, 당신이하는 첫번째 일은 당신이이 물건들 중 하나를 제출하는 것입니다 민감한 [? 주기

?] 그리고 나서 당신이 할 수있는 다음 일은 XSS 공격이있는 경우입니다 사이트 간 취약점이있는 경우 당신은 무언가를 주입하기 위해 크로스 사이트 스크립팅을 사용할 수 있습니다 이런 식으로 그리고 이사회 운영이 열악하기 때문에, 나는 이것을 여기에 그릴 것이다 따라서 애플릿을 삽입하고, JavaScript 코드를 작성하고, 그것의 종류의 소스로서, 당신은 단지, cats

gif라고 말합니다 그리고 이것에 대해 흥미로운 점은 무엇입니까? 이 코드는 크로스 사이트 스크립팅을 사용하기 때문에 취약점은 취약한 사이트의 컨텍스트에서 실행됩니다 이것은 취약한 사이트의 출처에 업로드되었습니다 그래서 이것은 같은 기원 시험을 통과 할 것입니다 그러나이 코드는 공격자가 지정했습니다

이제 침입자가 피해자의 컨텍스트에서 Java 애플릿을 실행합니다 그 원산지의 모든 권한을 가진 사이트 GIFAR이 취약한 사이트의 이미지를 통과 시켰음에도 불구하고 유효성 검사 코드 이 중 하나가 실제로 올바르게 GIF로 구문 분석 하지만 여기에 숨겨진 코드가 있습니다 그리고 브라우저가 시도 할 때 [INAUDIBLE] 다시 JAR 부분을 실행하려면, 그것은 바닥에서부터 시작해서 여기 올라오고, 그 부분을 그냥 무시합니다

그래서 이것은 실제로 꽤 놀랍습니다 그래서 상당히 간단한 방법이 있습니다 이런 식으로 고칠 수 있습니다 예를 들어 실제로 애플릿 로더를 실제로 가질 수 있습니다 여기에 임의의 쓰레기가 있어서는 안된다는 것을 이해하십시오

예를 들면 많은 경우에 일어난 일은 정보가 있다는 것입니다 말하는 메타 데이터에서, 여기에이 자원의 길이가 있습니다 그리고 길이라고 말하면, 여기에서 멈 춥니 다 그들은 단지 나머지가 무엇인지 누가 말할 것인지를 말할 것입니다

아마도 0 일 것입니다 그러나이 경우에는 그렇지 않았습니다 내가 이것에 대해 좋아하는 것은 그것이 정말로 소프트웨어 스택이 웹용으로 얼마나 넓은지를 보여줍니다 그래서 GIF와 JAR의 두 가지 형식을 취하는 일종의, 실제로이 불쾌한 공격을 실제로 만들 수 있습니다 실제로 PDF에서도이 작업을 수행 할 수 있습니다

여기에 PDF를 넣을 수 있습니다 나는 그것이라고 불렀다라고 생각한다, [? PDFR?] 공격 또는 이와 비슷한 것 그래서 사람들은 하루 동안 이것으로 하루를 보냈습니다 이 취약점은 현재 폐쇄되었습니다 관객 : 그러면이 공격으로 무엇을 할 수 있습니까? 너는 [INAUDIBLE]로 할 수 없다

XSS 또는 귀하 자신의 [비 숙주]입니까? 교수 : 그래서 좋은 일이 예, 예 그럼 좋은 질문입니다

그래서 이것에 대해 좋은 점은 Java가 종종 발생한다는 것입니다 일반 자바 스크립트를 실행하는 것보다 더 강력 할 수 있습니다 그것은 약간 다른 규칙을 가지고 있기 때문에, [? 같은 근원?] 정책과 그런 물건 [INAUDIBLE] 더 낮은 수준의 액세스 권한 얻기 파일 시스템이나 그런 것들에 그러나 당신이 맞습니다

만약 당신이 크로스 사이트 스크립팅을 할 수 있다면, JavaScript를 실행하는 것은 이미 꽤 위험합니다 그러나 이것의 주요 이점은, 다시 한 번, 애플릿 내에서 실행됩니다 괜찮아 네 그렇게 말했듯이 그것은 내가 좋아하는 모든 시간의 공격입니다

주로 진지한 보안을 강요했기 때문에 주로 개인은 항상 GIFAR라고 말합니다 그러니 너가 나 자신처럼 쉽게 즐겁다면 이것은 당신을위한 대범이었다 흥미로운 또 다른 것 실제로 공격이 있다는 것입니다 시간을 기준으로합니다 시간을 자원으로 생각하지 않을 수도 있습니다

공격을위한 벡터 일 수 있습니다 그러나 내가 몇 분 전에 누군가와 토론하고 있었을 때, 예, 시간은 실제로 시스템이 악용 될 수있는 방법 일 수 있습니다 그래서이 공격들은 – 특정 공격 나는 너와 얘기 할거야 은밀한 채널 공격의 구체적인 예입니다 그래서 은밀한 채널 공격의 아이디어 근본적으로 공격자입니다

두 가지 응용 프로그램에 대한 몇 가지 방법을 찾았습니다 정보 교환 그리고 그 교환 벡터는 공식적으로 승인 된 것이 아닙니다 벡터 공격자는 어떻게 든 다른 부분을 활용합니다

정보의 비트를 전달하는 시스템의 서로 다른 두 개체 사이 그래서이 물건의 좋은 예입니다 CSS 기반 스니핑 공격이라고하는 것입니다 그럼이 공격은 무엇에 관한 것입니까? 그래서 공격자는 사용자가 방문 할 수있는 웹 사이트를 가지고 있습니다 다시 한 번 사용자가 웹 사이트를 방문하도록 유도 실제로는 대개 꽤 간단합니다

당신은 광고를 만듭니다 그들에게 피싱 이메일을 보내십시오 따라서 공격자는 사용자가 방문하는 웹 사이트를가집니다 그리고 공격자의 목표는 배우는 것입니다 사용자가 방문한 다른 웹 사이트 그리고 공격자는 여러 가지 이유로이 사실을 알고 싶어 할 수 있습니다

어쩌면 그들은 어떤 종류의 검색어 사용자가 찾고있는 어쩌면 그들은 알아 내려고 노력 중일 것입니다 그 사람이 고용되어 있거나 어쩌면 그들은 그들이 어떤 타입에 접근했는지 알고 싶다 당황스러운 물질의 등등 그러면 공격자는 어떻게 할 것입니까? 공격자가 제어하는 ​​유일한 경우 사용자가 방문하도록 유도 할 수있는 웹 사이트입니까? 음, 링크 색상을 활용하는 것이 악용입니다 그래서 당신은 웹 페이지에 갈 때처럼 알고 있습니다

링크를 클릭하면 다음 번에 해당 링크가 표시됩니다 그것은 이제 다른 색깔입니다 따라서 실제로는 보안 상 취약합니다 그것이 의미하는 바는이 공격자 웹 사이트에서, 공격자가 당신을 속여 당신을 방문하게 만들 수 있다면, 공격자는 엄청난 수의 후보 URL 목록을 생성 할 수 있습니다 네가 방문했을 수도 있고 JavaScript를 사용하여 해당 URL의 색상을 확인하십시오 그리고 URL 색상이 자주색이면, 아하, 당신은 그 사이트를 방문했습니다

그래서 이것은 매우 미묘했습니다 그리고 이것에 대해 흥미로운 점은 무엇입니까? 많은 경우에 URL을 표시 할 필요조차 없다는 것입니다 사용자에게 도미노를 생각 해낼 수 있습니다 특정 href가 있고 그것의 작풍을 다만 본다, 방문한 색상인지 아닌지 확인하십시오 그래서 이것은 실제로 꽤 미묘합니다

그래서 당신은 생각할 수도 있습니다 모두를 통해 스캔하는 것이 비효율적이 될 것입니다 이 후보 URL은 무엇입니까? 우리는 모든 종류의 똑똑한 최적화를 할 수 있습니다 예를 들어, 여러 번 패스 할 수 있습니다 첫 번째 패스에서는 사용자가 최상위 URL을 방문했는지 확인하십시오

cnncom, Facebookcom 등등 대답이 '예'라면 그 히트들에 깊이 우선 탐색을해라 당신이 최상위 레벨에서 발견 한 그래서 당신은 실제로 실제로 제약 할 수 있습니다

이 방법으로 검색 공간 그래서 이것은 정말로 재미있었습니다 당신이 유머 감각이 있다면, 왜냐하면 그것은이 매우 무해한 특징 브라우저가 지원합니다 그들은 단지 당신을 도우려는 것입니다 그들은 말하고 싶어, 이봐, 친구, 여기가 당신이 방문한 곳입니다

실제로이 매우 위험한 정보를 나타낼 수 있습니다 그래서 이것을위한 해결책은 무엇입니까? 그래서 실제로, 브라우저 [? 주자?] 않았다 브라우저가 자바 스크립트에 종속되도록 만든 것입니다 링크 색상에 대해 기본적으로 JavaScript가 링크를 보려고 할 때 그리고 그 스타일을 보면, 브라우저는 항상 방문하지 않는다고 말한다 승인

그래서 그것은 다소 불행한 것처럼 보입니다 하지만이 공격을 막을 수 있습니다 그래서 나는 우리가 그것으로 살 수 있다고 생각한다 자바 스크립트가 링크 색상을 읽을 수 없다 세상의 종말

그래도 끝났어? 이것은 공격자의 문제를 해결합니까? 너 어디 있었는지 알아낼 수 있니? 대답은 물론 아닙니다 그래서 공격자가 할 수있는 다음 공격 캐시 기반 공격입니다 그리고 여기 직관은 다시 한번, 목표입니다 동일합니다 공격자는 귀하가 방문한 사이트를 알고 싶어합니다

익스플로잇 벡터는 그 정보입니다 캐시 된 파일은 더 빨리 액세스 할 수 있습니다 사실, 캐시하는 이유가 전부입니다 처음에는 다시 한 번, 공격자는 공격자가 생각하는 후보 객체 목록 당신은 방문한 다음 시간을 보냈을 것입니다 그 물체가 얼마나 빨리 공격자에게 돌아 오는 지

그리고 물체가 빨리 돌아 오면, 너 알지? 너는 약간을 필요로 하는가?] 문지방, 공격자는 당신이 실제로 전에 그 물건들에 가봤습니다 그럼 그게 말이 되니? 다시 한번 브라우저는 당신을 도우려는 것입니다 그러나 이러한 기술을 활용하여 어떤 사악한 지식 그리고 이것에 대해 흥미로운 점은 무엇입니까? 이 공격은 실제로 활용할 수 있다는 것입니다 매우 흥미로운 지리적 위치 정보

Google지도 타일에 대한 공격을하고 있다고 상상해보십시오 예를 들면 그래서 네가 실제로 일련의 Google지도 타일에 액세스했습니다 그건 아마 네가 그 장소에 있다는 것을 의미한다 또는 다른 사람들에게 관심이 있습니다

그곳에 있을지도 몰라 따라서 실제로는 매우 강력한 공격입니다 그래서 확인 그럼 이걸 어떻게 고칠 수 있니? 글쎄, 이건 분명하지 않다 전혀 캐시하지 않는 사이트가있을 수 있습니다

그러면 사이트가 느려질 것입니다 그런 종류의 엿 같은 따라서이 문제를 어떻게 해결할 지 명확하지 않습니다 하지만 괜찮아 우리가 여기에 놓인 방어력을 가지고 있다고 가정 해 봅시다

자바 스크립트는 링크 색상을 읽을 수 없습니다 사이트가 슈퍼라고 가정 해 봅시다 편집증은 아무것도 캐시하지 않는다 그래서 우리는이 공격으로부터 완전히 자신을 지켰습니까? 일초 그래서 대답은 '아니오'입니다

공격자가 실제로 DNS 기반 공격 그래서 직관은 당신이 아무것도 캐시하지 않더라도, 언제 당신은 처음으로 리소스에 액세스합니다 당신은 호스팅을위한 DNS 요청을 생성해야합니다 해당 자원과 연관됩니다 다시 한 번, 공격자는 시간 내에 볼 수 있습니다

공격자가 얼마나 오래 걸리는 지 확인하십시오 공격자가 생각하는 이러한 후보 객체에 액세스하려면 당신이 접근했을 수도 있습니다 그리고 그들이 빨리 돌아 오면, 그것은 아마도 당신이 DNS를 낳았다는 좋은 암시 전에 그 호스트의 이름 그리고 이것은 비록 당신이 아무것도 캐시하지 않더라도 작동합니다, 왜냐하면 DNS 캐시는 브라우저가 아닌 OS와 함께 있기 때문입니다 관객 : 당신이 언급했습니다, 나는 마지막 수업, 능력 스크린 샷을 찍으려면 JavaScript를 얻으십시오

교수 : 예, 예 관객 : 그러면 [? 링크?] 단일 픽셀로 캡처 한 다음 스크린 샷을 찍습니다 그 픽셀은 [INAUDIBLE]입니까? 교수 : 네 네가 그렇게 할 수있어 그래서 렌더링 물건은 항상 조금 까다 롭습니다

당신이이 게임을해야하기 때문에 사용자에게 무엇인가를 보여주고 싶다면, 그것은 정말로 빨리 번쩍해야합니다 아니면 다른 사람이 들어오는 것을 볼 수도 있습니다 이 엄청난 URL 목록 하지만 당신 말이 맞아

화면 공유 API에 액세스 할 수있는 경우, 많은 것이 훨씬 더 간단 해집니다 관객 : 어떤 종류의 애니메이션 이미지가 있다면 대부분 무작위로 보입니다 그것의 1 화소에주의를 기울이십시오? 교수 : 당신 말이 맞습니다 일반적으로 화면 공유 API는 나쁜 생각이야 나는 세계의 대통령이 아니므로 어떻게해야합니까? 어쨌든 그렇게하더라도 DNS 기반 공격은 발생하는 캐싱이 없습니다

승인 그래서 마지막 조각으로 저항, 생각할 것입니다 그렇습니다 원시 IP 주소 만 사용한다면 어떻게 될까요? 우리 호스트 이름 전부? 우리는 일을 캐시하지 않습니다! 승인? 그리고 노출되지 않는 업데이트 된 브라우저에서 실행 중입니다 색상을 JavaScript에 연결하십시오

그래서 우리는 괜찮습니다 나는 네가 괜찮지 않다는 것을 알기 위해 여기에있다 공격자가 실제로 할 수있는 것 렌더링 공격을 이용합니다 기본 아이디어는 일반적으로 더 빠릅니다 방문한 URL을 렌더링하는 방법 다양한 엉뚱한 이유로 브라우저 [INAUDIBLE] 렌더링 방법을 다루어야합니다

[INAUDIBLE] 내부 그래서 공격자가 실제로 할 수있는 것은 실제로 후보 iframe 만들기, 거기에 콘텐츠를 넣으려고합니다 공격자가 당신이 방문했다고 생각한 다음 공격자가 해당 iframe에 액세스 할 수 없는지 지속적으로 확인합니다 iframe이로드 될 때, 브라우저는 일반적으로 iframe을 공격자의 페이지에 속합니다 그리고 그 다른 원산지 내용 들어 오면 이러한 액세스 오류가 발생합니다

왜냐하면 지금은 다른 원산지 [INAUDIBLE] 이제 공격자는 더 이상 만질 수 없습니다 따라서 공격자는 이와 같은 일을 여전히 할 수 있습니다 캐싱, 렌더링 정보가 있는지 확인합니다 이 후보 사이트에 대해서는 [INAUDIBLE] 브라우저를 사용하십시오

그렇게해서 어쨌든, 그것들은 유일한 희망과 꿈입니다 오늘 너를 때리고 싶다 나는 우리가 시간이 없다고 믿는다 하지만 다음에 너를 볼거야

What Can You Do with Python? – The 3 Main Applications

당신이 어학 연수를 생각하고 있다면 또는 귀하가 최근에 그것을 배우고 있다면 당신은 내가 정확하게 피스톤을 사용할 수있는 것을 생각할 수도 있습니다 실제로 그 때문에 대답 하기엔 참으로 의구심이 듭니다

거기에는 많은 PYTHON 응용이 있습니다 그러나 나는 PYTHON을위한 세 가지 주요 응용이 있음을 나는 보았습니다 웹 개발 데이터 과학 기계 학습 데이터 과학 및 데이터 시각화 포함 및 스크립팅 나는이 비디오의 끝 부분에서 각각에 대해 이야기 할 것이다 나는 또한 GONNA를 언급한다 게임 개발 임베디드 응용 프로그램 이 비디오의 끝 부분에있는 데스크탑 및 응용 프로그램 그리고 평범한 내가 나에게있어

The Python Mega Course: Build 10 Real World Applications | 007 Setting up Atom on Windows

이 강의에서 안녕하세요 다시 다운로드하고 설치하는 방법을 보여 드리겠습니다

Atom 편집기 Atom은 쓰기와 쓰기에 매우 효과적인 편집기입니다 파이썬 코드 구현 이 강의는 Windows에만 국한되므로 사용자 다음 강연 Mac 우리가하기 전에 우리는 설치했다

파이썬과 우리는 cmd에서 파이썬 대화 형 세션을 시도했고 우리는 또한 메모장과 같은 간단한 편집기를 사용하여 파이썬 프로그램을 만들거나 Windows에서 이미 사용하고있는 편집기이므로 지금부터 사용하겠습니다 또 다른 편집기는 Atom이고 당신은 그것을 설치하고 설치해야합니다 Atom 페이지 공식 사이트에서 다운로드하십시오 거기서 버튼을 클릭하십시오 파일을 다운로드하고 다운로드하는 데 시간이 걸립니다

다운로드 프로세스가 훌륭합니다 이제 Atom 파일을 클릭하여 실행합니다 인스톨 될 때까지 기다려야합니다 그리고 네, 설치 프로세스가 빠르며 Atom이 Windows에서 열렸습니다 그러나 여기를 닫고 Atom을 여는 방법에 대한 표준 방법을 보여줍니다

프로그래밍을 시작할 때 보통 Atom을 여는 방법은 다음과 같습니다 Atom 프로그램을 찾아보고 Atom을 클릭하여 엽니 다 그러나 우리는 원자 디렉토리를 무작위로 열어서 가장 효과적인 방법으로 Atom을 프로그램이있는 폴더로 엽니 다 우리가 가진 것은 myprogrampy입니다

그런 다음 오른쪽 바깥 쪽을 클릭하십시오 Atom을 열지 만, 만약 당신이 나를 좋아하는 Atom을 보지 않는다면 그래서 나는 Atom을 아직 열지 않았다 그리고 Atom을 열고 연다 귀하의 프로그램에 대한

파일로 이동하여이 두 가지 옵션을 설치하고 테스트하십시오 옵션은 설정 메뉴의 시스템 탭에서 시스템 아래에 있었고 Atom을 닫고 마우스 오른쪽 버튼을 클릭하면이 메뉴가 나타납니다 열어 라 그리고 이제이 뷰포트가 보일 것입니다 그러나 보시면 트리가 보이지 않을 것입니다

여기를보고, 폴더를보고,보기로 이동 한 다음, 트리보기를 변환 할 수 있습니다 켜고 끕니다 프로그램을 닫았다가 열면 편집 할 수 있습니다 프로그램은 파일을 파이썬 파일에 두 번 클릭하기 만하면됩니다 쓰기 시작

에서 코드 추가를 시작하고 ctrl을 눌러 저장하고 이제이 코드를 실행하면 여기로 이동하여 명령 프롬프트를 열 수 있습니다 여기 마우스의 오른쪽 이동이나 더 효율적인 방법이 있습니다 너는 필요해 패키지, 미안한 패키지를 설치하려면, 당신은 새로운 프로그램을 설치하고 싶어 해당 platformio 압축 및 검색 설치를 클릭하면 설치 또는 통합 할 패키지입니다

터미널, Atom 내부 명령 줄 당신은 외부 창을 사용할 필요가 없습니다 원래의 명령 행 창과 Atom 내에서 프로그램을 실행할 수 있습니다 모든 ide 플랫폼 터미널이 성공적으로 설치되면 닫을 수 있습니다 설정 탭을 클릭하고 여기에 더하기 아이콘이 표시되면 아이콘을 클릭하십시오 새 터미널을 열어 이제는 Atom 폴더를 미러링하는 현재 폴더 열기 디렉토리에 저장하십시오 이제 계속해서 명령을 입력 할 수 있습니다

Python 프로그램을 실행하십시오 자동 완성을위한 내 탭과 자동 완료처럼, 이것에 대해 걱정하지 마십시오 이것은 단지 현재를 의미합니다 그래서 당신이 탭을 할 때, 탭은 이것을 추가 할 것입니다 그것을 무시하고 Enter를 누르십시오

터미널에서 출력 프로그램을 볼 수 있습니다 터미널을 삭제할 수 있습니다 코드는 이전 명령을 실행하며 물론 호출 할 수 있습니다 화살표 키를 사용하여 이전에 실행 된 명령 다시하고하지 마라

파이썬 대화 형 세션을 열고 프로그램을 구현하는 데 혼란을 겪습니다 대화 형 예제의 경우 print 7로 파이썬 코드를 작성하지만 종료하면 이것은 일부 학생들이 여기서 파이썬 코드를 실행하는 것을 볼 수 있기 때문입니다 이것은 잘못되었습니다 이것은 파이썬이 아닙니다 이것은 창, 명령 행 창, 파이썬 코드를 대화식 세션이나 내부에 작성하는 대신 사용하지 마십시오

파이썬 파일 그것이 아이디어이며 이것은 원자입니다 네가 그걸 좋아하길 바란다 그리고 나중에 나에게 말할거야