응용 프로그램 보호
도입됨| English | 의미 |
|---|---|
| secure by design/sɪˈkjʊə baɪ dɪˈzaɪn/ | 안전 설계 |
| secure by default/sɪˈkjʊə baɪ dɪˈfɒlt/ | 기본 안전 |
| input sanitization/ˈɪnpʊt ˌsænɪtaɪˈzeɪʃn/ | 입력 정화 |
| special characters/ˈspeʃl ˈkærɪktəz/ | 특수 문자 |
| control characters/kənˈtrəʊl ˈkærɪktəz/ | 제어 문자 |
| parameterised queries/ˌpærəˈmetəraɪzd ˈkwɪərɪz/ | 파라미터화 쿼리 |
Secure by design and default
- Secure by design 安全设计 builds security into every phase of development, including how untrusted data reaches a database, browser or file system.
- Secure by default 默认安全 enables protective settings from the start. It reduces risk; it does not guarantee that a product has no vulnerabilities.
Keep input as data
- Input sanitization 输入清理 transforms input for a specific purpose; validation checks an allowed type, length, range or format. Neither is a universal attack filter.
- Quotes and semicolons are ordinary printable special characters 特殊字符, not necessarily control characters. A legitimate name such as
O'Neillshould not be damaged just because it contains an apostrophe.
목적지의 컨트롤을 선택하라
SQL 값을 구문과 분리하고, 브라우저 출력의 맥락에 따라 보호하며, 해결된 파일 경로를 제한하라. 보편적인 구두부호 필터는 없다.
"기본 보안(Secure by default)"은 제품이 ...과 함께 출시됨을 의미합니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
안전한 기본값은 초기부터 보호를 활성화하지만, 취약점이 없는 시스템을 보장하지는 않는다.
숫자형 SQL 필드에 0 또는 1=1가 입력됩니다. 이 입력이 쿼리 문법으로 변하지 않도록 제어하는 방법은 무엇입니까?
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
입력에는 인용문자나 세미콜론이 필요 없습니다. 파라미터 바인딩은 이를 데이터로 유지하고, 숫자 범위도 검증해야 합니다. HTML 인코딩은 다른 목적에 사용됩니다.
값을 SQL 문법과 분리하여 ____ 쿼리를 사용하십시오.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
SQL 텍스트에 결합하지 않고 각 값을 별도로 바인딩합니다.
목적지에 적합한 제어를 사용하는 문장을 모두 선택하십시오.
난이도 2/5 · 140 코인 + 오늘 첫 완료 시 소액 보너스
첫 세 가지 제어는 목적지에 맞습니다. 인용문자 차단 목록은 유효한 이름에 손상을 줄일 수 있으며 모든 세 맥락을 보호하지 못합니다.
Match the control to the destination
- For SQL injection, use parameterised queries 参数化查询: fixed SQL structure and separately bound data values. Validation adds a check but does not replace binding.
- For XSS, render plain text with a safe text API or apply output encoding for the actual HTML, attribute or other context. If HTML is allowed, use a suitable HTML sanitizer.
- For directory traversal, resolve the requested path and require it to remain inside the permitted directory. Rejecting quote characters does not establish that boundary.
A single character blacklist cannot protect every destination. An age field can be abused with 0 OR 1=1, which needs no quotes or semicolon. The right defense keeps input out of the query's syntax. Validation must also check whether the age is a valid number in the allowed range.
디자인 기반 보안( Secure by design )은 개발의 초기 단계부터 보안을 내재시킵니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
보안은 추가 기능( add-on )이 아닌 설계 원칙입니다.
A pupil search should accept the exact name O'Neill. Write a fixed query such as SELECT name FROM pupils WHERE name = ? and bind the entered name separately. An input such as ' OR '1'='1 then remains one name value rather than changing the query. When displaying a name, insert it as text; do not assemble executable HTML from it. This preserves legitimate input while protecting both destinations with their own controls.
Build security into the design and enable safe defaults. Validate input for the task, keep SQL values separate from SQL syntax, encode or safely render browser output, and enforce file-system boundaries. Do not claim that stripping punctuation stops every input attack.