입력 검증 필터
입력 유효성 검사 필터는 Blackboard 보호를 위한 첫 번째 방어선으로, 구성 가능한 규칙을 통해 작동합니다. Blackboard의 방화벽과 유사한 의미가 있습니다. 들어오는 사용자 요청이 안전한지 확인하기 위해 기본 규칙 집합을 사용하여 데이터를 삭제합니다.
단일 Blackboard 인스턴스는 매일 다수의 HTTP 요청(예: 과제 제출, 과제 저장, 시스템 로그인, 시스템 로그아웃 등)을 처리할 수 있습니다. 각 요청마다 Blackboard는 해당 요청을 처리하는 코드에 올바른 값이 포함되어 있는지 확인해야 합니다. 입력 유효성 검사 필터는 Blackboard 내에서 잘 정의된 데이터 필드 집합(예: 코스 ID 필드)을 간략하게 설명하고, 각 필드에 허용되는 기준 및 패턴을 명시적으로 나열합니다. 기본 규칙 집합에 정의되어 있습니다. 입력한 데이터가 규칙 기준에 맞지 않을 경우, 시스템은 'on-fail' 속성에 설정된 값에 따라 대응합니다.
기본 규칙 집합은 수정할 수 없지만, 이를 기반으로 사용자 지정 규칙 집합을 생성하여 독점적이거나 타사의 빌딩 블록을 보호할 수 있습니다. 시스템을 보호하는 기본 규칙 세트를 확인할 수 있습니다. Blackboard 페이지의 다양한 매개변수, 허용되는 값, 제약 조건이 충족되지 않을 때 발생하는 상황을 확인할 수 있습니다. 사용자 지정 규칙 집합을 사용하면 시스템이 필터를 적용할 빌딩 블록을 정의하고, 영향을 받는 빌딩 블록의 새 버전을 기다리지 않고도 보안 문제를 신속히 해결할 수 있습니다.
관리자 패널 > 보안 > 입력 유효성 검사 필터에서 입력 유효성 검사 필터 기능을 찾으십시오.
기본 규칙 집합
블랙보드는 기본 규칙 세트를 사용하여 보안 문제를 신속히 해결합니다. 기본 규칙 집합은 Blackboard 페이지에서 지정된 경로에 필요한 매개변수 및 데이터 유형에 대한 제한을 정의합니다. 시스템이 잘못된 값 형식을 입력받았을 때의 반응도 정의합니다. 학생이 코스 ID를 입력하는 중입니다. 코스 ID는 숫자만 포함해야 하지만, 학생이 알파벳과 숫자가 섞인 값을 보내거나 스크립트를 전송하도록 악의적으로 요청을 조작합니다. 블랙보드가 악성 입력에 대응하는 방식은 규칙의 'on-fail' 속성으로 정의되어 있다.
관리자 패널 > 보안 > 입력 유효성 검사 필터로 이동한 후 기본 규칙 집합을 선택하세요. 여기에서 다음 작업을 수행할 수 있습니다.
규칙 집합 다운로드(xml)를 클릭하여 기본 규칙 집합을 다운로드하고 확인하세요. 사용자 정의 규칙 세트를 작성하는 모델로 사용하십시오.
스키마 다운로드(xsd)를 선택하여 기본 규칙 세트의 스키마 정의를 다운로드하세요. 사용자 정의 규칙 세트를 작성하는 데 필요한 형식을 정의합니다.
기본 규칙 집합 페이지 상단에서 날짜를 확인하세요. 시스템에서 기본 규칙 세트가 마지막으로 업데이트된 시간을 알려줍니다.
기본 규칙 집합은 다음 표준을 바탕으로 개발되었습니다. 사용자 정의 규칙을 처리하기 위해 시스템은 이 표준을 기반으로 한 사용자 정의 규칙 세트를 개발해야 합니다.
필수 및 선택적 규칙 속성
필수 대 선택 사항 | 형식 |
|---|---|
필수 속성 | <rule path="..." parameter="..."/> |
선택적(그러나 원하는 경우) 속성 | <rule path="..." parameter="..." constraint="..." on-fail="..."/> 또는: <rule path="..." parameter="..." constraint-name="..." on-fail="..."/> |
선택적 속성 | <rule path="..." parameter="..." constraint="..." on-fail="..." min-version="..." max-version="..."/> 또는: <rule path="..." parameter="..." constraint-name="..." on-fail="..." min-version="..." max-version="..."/> |
속성 및 설명
사용자 지정 규칙 집합은 선택적입니다. 기본 규칙 집합을 바탕으로 사용자 지정 규칙 집합을 생성해 독점적이거나 타사의 빌딩 블록에 보호 기능을 추가하고 규칙 우선 순위를 지정해 기본 규칙 집합의 규칙을 재정의할 수 있습니다.
사용자 정의 규칙 세트를 사용하면 시스템에서 필터를 적용할 빌딩 블록을 정의하고, 시스템 관련 문제를 해결하거나 Blackboard의 솔루션을 제공하기 전에 해결할 수 있습니다. 사용자가 정의한 규칙 세트를 작성하기로 결정하면 기본 규칙 세트와 함께 실행됩니다.
사용자 정의 규칙 집합 생성
보안 탭에서 관리자 패널의 입력 유효성 검사 필터를 선택하세요.
사용자 지정 규칙 집합을 선택하십시오.
규칙 세트 다운로드(xml)를 클릭하여 기본 규칙 세트를 로컬 시스템에 저장하세요. 이를 수정하고 사용자 정의 규칙 세트를 만드는 기반으로 활용할 수 있습니다.
스키마 다운로드(xsd)를 선택하여 스키마를 저장하고 사용자 지정 규칙 세트에서 규칙 형식을 지정하는 방법을 안내합니다. 기본 규칙 집합을 참조하시기 바랍니다.
사용자 지정 규칙 집합 페이지로 이동한 후 업로드를 선택해 새로운 사용자 지정 규칙 집합을 찾아서 업로드하세요.
사용자 지정 규칙 집합을 업로드하면 세 가지 새로운 옵션이 표시됩니다.
바꾸기 활성 사용자 정의 규칙 집합을 변경하고 새 규칙 집합을 업로드할 수 있습니다. 이 옵션을 선택하면 사용자 지정 규칙 집합을 업로드하는 페이지로 이동합니다.
삭제: 사용자 정의 규칙 세트를 삭제할 수 있습니다.
다운로드: 사용자 정의 규칙 세트를 로컬 시스템에 저장한 후 계속해서 편집할 수 있습니다.
사용자 정의 규칙 세트를 보존합니다.
관리자는 사용자 지정 규칙 집합에 대한 별도의 백업 복사본을 유지해야 합니다.
입력 유효성 검사 필터 빌딩 블록을 제거한 후 다시 설치하면 사용자 지정 규칙 집합이 유지되지 않습니다.
입력 유효성 검사 필터 빌딩 블록을 업데이트하면 기존 사용자 정의 규칙 세트가 유지되며 활성 상태로 남습니다.
규칙 우선순위
규칙 충돌은 path 속성 및 매개 변수 속성에서 동일한 값을 가지는 두 규칙으로 정의됩니다. 기본 규칙 세트와 사용자 정의 규칙 세트는 함께 실행됩니다. 규칙 집합 사이에 충돌이 발생하면 사용자 정의 규칙 집합이 기본 규칙 집합보다 우선 순위를 갖습니다. 사용자 지정 규칙과 기본 규칙이 경로 속성 및 매개 변수 속성에 모두 정의되어 있을 때, '실패 시'와 같은 다른 속성과 관계없이 마지막으로 선언된 규칙이 활성화된 규칙이 됩니다.
충돌은 매우 드물게 발생하며 오직 사용자 지정 규칙 집합에 의해 발생합니다. 충돌을 방지하고 시스템이 예상하는 수행 방식에 맞추기 위해서는 사용자 지정 규칙의 경로 및 매개변수 속성이 기본 규칙 집합이나 다른 사용자 지정 규칙 집합의 규칙과 중복되지 않도록 확인해야 합니다. 사용자 정의 규칙 세트에서 규칙을 정의하여 기본 규칙 세트의 동작을 대체하려면 규칙 우선순위 및 충돌 사용을 활용하십시오.
참고
파일 맨 아래에 더 가까운 규칙을 사용하기 때문에 충돌이 정의되면 시스템 경고가 발생하지 않습니다.
시나리오 | 시스템 조치 |
|---|---|
사용자 정의 규칙 집합 내의 규칙이 다른 규칙과 충돌할 경우... |
|
사용자 지정 규칙 집합의 규칙이 기본 규칙 집합과 충돌할 경우... |
|