인 코딩 과 필터
저자: 영원의☆ 주소:http://blog.csdn.net/chenghui0317/article/details/7881454
1. 흔히 볼 수 있 는 문자 집합 과 문자 인 코딩 은 어떤 것 이 있 습 니까?
문 자 는 문자 의 집합 이 고 문자 인 코딩 은 컴퓨터 에 인식 되 는 바 이 너 리 형식 을 보 여 주 는 바이트 이다.
(1) ascii 문자 집합 은 주로 미국인 을 대상 으로 사용 되 며, 모든 문 자 는 8 개의 바이트 로 저장 되 며, 128 (2 < 6) 문 자 를 저장 할 수 있 습 니 다.
(2) iso - 8859 - 1 문자 집합, 아랍 문자 집합 은 ascii 문자 집합 보다 강하 고 ascii 문자 집합 을 바탕 으로 더 많은 ascii 이외 의 문 자 를 저장 할 수 있 습 니 다. 이렇게 말 하면 iso - 8859 - 1 은 기본적으로 ascii 를 대체 할 수 있 습 니 다.
(3) GB 2312 최초의 중국어 인 코딩 문자 집합
(4) GBK 가 GB 2312 를 바탕 으로 확장 하 는 중국어 문자 집합
(5) GB 18013 현재 가장 완 비 된 중국어 인 코딩 문자 집합
(6) 유 니 코드 국제 인 코딩 의 문자 집합, 즉 전 세계 의 거의 모든 문자 집합 을 수용 할 수 있 습 니 다. 이것 은 가 변 길이 의 저장 방식 으로 최대 32 비트 길이 입 니 다.
2. 흔히 볼 수 있 는 코드 는 어떤 것들 이 있 나 요?어떻게 할 까요?
(1) 폼 의 post 제출 방식,
처리 페이지 에 request. setCharacterEncoding ("UTF - 8") 을 추가 하면 됩 니 다.
또는 모든 문자열 을 수 동 으로 바 꿉 니 다. 예 를 들 어 param = new String (param. getBytes ("ISO - 8859 - 1"), "UTF - 8");
struts 2 프레임 워 크 에 어떻게 사용 하 는 지 상수: < constant name = "struts. i18n. encoding" value = "UTF - 8" > < / constant > 도 가능 합 니 다.
(2) 폼 의 get 제출 방식 을 사용 할 때 Tomcat 서버 를 사용 하면 tomcat 설치 디 렉 터 리 에 있 는 conf \ server. xml 에서 자신의 포트 번호 와 일치 하 는 connecter 연결 기 를 찾 을 수 있 고 URIEncoding = "UTF - 8" 을 추가 하면 수 동 으로 코드 를 바 꿀 수 있 습 니 다.
(3) 페이지 오류: 흔히 볼 수 있 는 것 은 페이지 인 코딩 형식 이 일치 하지 않 아서 생 긴 것 이기 때문에 평소에 인 코딩 은 규범 화 된 습관 을 길러 야 한다.
또한 자체 브 라 우 저 와 웹 페이지 의 인 코딩 형식 이 일치 하지 않 을 때 수 동 으로 변경 하면 해결 할 수 있 습 니 다.3. 필터 의 장점 은 어떤 것 이 있 습 니까?
(1) 인 코딩 을 처리 할 때 인 코딩 을 대량으로 수정 하면 코드 가 불필요 할 수 있 습 니 다. 필 터 를 사용 하여 모든 처리 요청 을 차단 하고 인 코딩 처 리 를 한 후에 실행 하면 통일 적 으로 처리 할 수 있 습 니 다.
(2) 그리고 필터 가 모든 요청 을 차단 할 수 있 기 때문에 필터 가 권한 검 사 를 하도록 정의 할 수 있 습 니 다.
(3) 자원 을 보호 하고 들 어가 지 말 아야 할 주 소 를 진행 하면 강제로 종료 합 니 다.
4. 어떻게 하면 다른 사람의 악성 코드 의 침입 을 효과적으로 방지 할 수 있 습 니까? 예 를 들 어 가장 흔히 볼 수 있 는 스 크 립 트 주입?
(1) 하나의 요청 을 받 아들 인 후에 먼저 받 은 후에 처리 할 수 있 기 때문에 더 이상 값 을 부여 할 수 없습니다. 예 를 들 어 request 에 getParameter () 가 있 습 니 다.하지만 setParamter () 가 없습니다.
(2) request 의 포장 류, RequestWrapper 를 스스로 정의 하여 Http ServletRequestWrapper 류 를 실현 하고 getParameter () 방법 을 다시 쓰 며 그 안에서 특수 한 태그 기 호 를 처리 하면 됩 니 다.
/**
* request
* @author Administrator
*
*/
public class RequestWrapper extends HttpServletRequestWrapper{
public RequestWrapper(HttpServletRequest request) {
super(request);
}
// getParameter()
@Override
public String getParameter(String name) {
String content = super.getParameter(name);
content = content.replaceAll("<", "<");
content = content.replaceAll(">", ">");
content = content.replaceAll("\"", """);
content = content.replaceAll(" ", " ");
return content;
}
// RequestWrapper
filterChain.doFilter(new RequestWrapper((HttpServletRequest)request),response);
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
EC2 인스턴스에 Tomcat 설치전제 조건: Amazon 계정이 있어야 합니다. Amazon 계정에 로그인하고 EC2 인스턴스를 시작합니다. 여기에서 프리 티어를 선택했고 Amazon Linux 2를 실행하는 EC2 인스턴스를 시작했습니다. 시작 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.