비디오: Computational Thinking - Computer Science for Business Leaders 2016 2024
코드 삽입 방지의 첫 번째 규칙 C ++ 프로그램으로의 변환은 결코 적 없다. 는 사용자 입력이 범용 언어 인터프리터에 의해 처리되도록 허용한다. SQL 인젝션의 일반적인 오류는 프로그램이 사용자 입력을 항상 받아 들일 수있는 것처럼 받아들이고 SQL 쿼리에 삽입하여 처리를 위해 데이터베이스 엔진으로 전달된다는 것입니다. 예를 들어, 날짜에 대한 사용자 입력을 요구하는 프로그램이 해킹 당할 수 있습니다. 가장 안전하고 사용자 친화적 인 접근 방법은 사용자에게 시작 날짜와 종료 날짜를 선택할 수있는 캘린더 그래픽을 제공하는 것입니다. 그런 다음 프로그램은 사용자가 클릭 한 내용을 기반으로 날짜를 만듭니다.
yyyy / mm / dd < - 즉, 네 자리 숫자 뒤에 슬래시와 두 자리 숫자, 슬래시 및 마지막으로 두 자리 숫자가옵니다. 다른 어떤 것도 수용 가능한 입력으로 간주되어서는 안됩니다. 때로는 형식에 대해 구체적 일 수는 없습니다. 사용자가 유연한 텍스트를 입력하도록 허용해야한다면 특수 문자를 피할 수 있습니다. 예를 들어, 작은 따옴표 나 큰 따옴표를 사용하지 않고도 SQL 코드 삽입을 수행하는 것은 거의 불가능합니다.
작음 기호 ()를 사용하지 않고 HTML 태그를 삽입 할 수 없습니다. 또는 ASCII 텍스트 이외의 다른 것을 허용하지 않을 수도 있습니다:
// 일부 문자열을 검사하여 직선인지 확인하십시오. size_type off = s. find_first_not_of ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890_"); 이 코드는 문자열s
에서 A부터 Z까지의 문자 중 하나가 아닌 문자를 검색합니다 (즉,! = string:: npos) {cerr << "errorn", 0-9 또는 밑줄. 그러한 문자를 찾으면 프로그램은 입력을 거부합니다.