UrlRewrite 주소 재 작성 으로 안전성 증가
6544 단어 자바 웹 기술
UrlRewrite 는 우리 가 일반적으로 말 하 는 주 소 를 다시 쓰 는 것 입 니 다. 사용자 가 얻 은 것 은 모두 처 리 된 URL 주소 입 니 다.
방문 의 편 의 를 위해 사용자 가 url 후에 파 라 메 터 를 함부로 추가 하 는 등 안전 원인 을 방지 하기 위해 가끔 은 사이트 의 방문 경 로 를 위장 해 야 한다. 예 를 들 어
http://localhost:8080/datasystem/portal/toIndex.do 위장 하 다 http://localhost:8080/datasystem/index.html
장점.
(1) 안전성 향상 일부 매개 변수 이름, ID 등 이 사용자 앞 에 완전히 노출 되 는 것 을 효과적으로 피 할 수 있 습 니 다. 사용자 가 마음대로 지면 규칙 에 맞지 않 으 면 404 또는 오류 페이지 로 돌아 갑 니 다. 이것 은 500 또는 많은 서버 오류 정 보 를 직접 되 돌려 주 는 것 보다 좋 습 니 다. (2) URL 미화 예 를 들 어 *. do 와 같은 접미사 이름, 긴 매개 변수 문자열 등 을 제거 하고 방문 모듈 의 내용 을 더욱 간단하게 반영 할 수 있 는 URL 을 스스로 구성 할 수 있 습 니 다. (3) 검색엔진 수입 에 유리 URL 에 대한 최 적 화 를 통 해 검색엔진 이 사이트 의 정 보 를 더욱 잘 식별 하고 수록 할 수 있다
사용 절차
1, 다운로드 jar
일반 웹 프로젝트
공식 주소:http://tuckey.org/urlrewrite/
다운로드 링크:http://central.maven.org/maven2/org/tuckey/urlrewritefilter/4.0.3/urlrewritefilter-4.0.3.jar url rewritefilter - 4.0.3. jar 를 다운로드 하여 프로젝트 lib 디 렉 터 리 에 추가 합 니 다.
maven 프로젝트 다음 코드 를 pom. xml 에 추가 하면 됩 니 다.
org.tuckey
urlrewritefilter
4.0.3
2. 웹. xml 설정
UrlRewriteFilter
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
UrlRewriteFilter
/*
REQUEST
FORWARD
3. url rewrite. xml 설정 (프로젝트 의 WEB - INF 디 렉 터 리 에 url rewrite. xml 를 새로 만 듭 니 다.)
/index.html
/portal/toIndex.do
forward 와 redirect 는 모두 사용 할 수 있 지만 forward 방문 이 끝 난 후에 도 실제 방문 주 소 를 표시 하지 않 고 개인 적 으로 느낌 이 좋 습 니 다.
예시:
1. 정규 표현 식 일치 사용 (rule 의 기본 일치 방식 은 정규 표현 식)
^/demo/(\w+).html$ // :http://127.0.0.1:8080/Struts/demo/hello.html
/Struts/$1 // :http://127.0.0.1:8080/Struts/hello
해석:
rule url rewrite 의 하위 노드 입 니 다. url rewrite 의 주요 규칙 노드 입 니 다. 그 안에 from 과 to 두 개의 하위 노드 가 포함 되 어 있 습 니 다. from 은 요청 한 URL 을 표시 하고 to 는 실제 URL 로 넘 어 갈 것 임 을 표시 합 니 다.
^/news/([0-9]+).html$
/news/news.jsp?newsId=$1
탭 의 설정:
주 소 는 브 라 우 저가 방문 할 주 소 를 표시 합 니 다. (즉, 차 를 되 돌리 기 전에 주소 표시 줄 에 입력 한 주소 또는 탭 이 가리 키 는 연결), 스스로 지정 할 수 있 습 니 다.
괄호 안의 내용 은 정규 표현 식 으로 문 자 를 걸 러 내 는 데 사 용 됩 니 다. 예 를 들 어 ^/news/([0 - 9] +). html $는 일치/news 디 렉 터 리 에서 임의의 숫자 로 이름 을 지 을 수 있 는 html 파일 을 표시 합 니 다. 예 를 들 어 news/1. html, news/1234. html 등 입 니 다. 주로 접근 경로 나 전 참 을 걸 러 내 는 데 사 용 됩 니 다.
type 을 쓰 지 않 으 면 기본 값 은 forward 입 니 다.
내용 은 브 라 우 저가 상기 주 소 를 방문 한 후에 실제 적 으로 시스템 에 접근 할 수 있 는 주소 로 바 뀌 었 음 을 나타 낸다. 이 주 소 는 정말 존재 해 야 한다 (물론 SpringMVC 는 Controller 의 주소 로 설정 할 수 있 고 struts 2 는 action 의 주소 로 설정 할 수 있다). 위의 예 는 표지 가 가리 키 는 주소 중의 "$1"이다.탭 의 첫 번 째 정규 표현 식 이 일치 하 는 실제 내용 (즉 ([0 - 9] +) 을 표시 합 니 다. ),이 특성 을 이용 하면 전 삼 의 효 과 를 거 둘 수 있다.
^/demo1/(\w+)/(\w+).html$
/Struts/$1.action?age=$2
탭 이 하 는 역할 은 브 라 우 저가 방문 하 는 주 소 는 중간 주소 입 니 다. 이 주 소 를 필터 링 을 통 해 방문 하 는 주소 로 바 꾸 고 돌아 올 때 정적 주소 로 표시 합 니 다.
그러나 일반적인 상황 에서 이러한 정적 주 소 는 우리 가 수 동 으로 주소 표시 줄 에 입력 한 것 이 아니 라 웹 페이지 에 존재 하 며 사용자 가 클릭 하여 방문 한 것 이 며 많은 경우 탭 의 주 소 는. jsp,. php 등 동적 주 소 를 사용 합 니 다. 이 경우 사용 해 야 합 니 다.
^/news/([0-9]+).html$
/news/news.jsp?newsId=$1
^/WebTest/news/news.jsp\?newsId=([0-9]+)$
/WebTest/news/$1.html
탭 의 내용 과 차이 가 많 지 않 은 설정 을 발견 할 수 있 습 니 다. 위의 탭 과 정반 대 입 니 다.
index.jsp
위 에서 '뉴스 1' 링크 에 대한 설정 은 바로 이 렇 습 니 다. jsp 는 뉴스 값 을 가 져 와 서 사용자 에 게 정적 주 소 를 보 여 주 었 습 니 다. 정적 페이지 를 직접 방문 하 는 것 보다 두 걸음 더 걸 은 것 과 같 습 니 다. url rewrite. xml 에서 구체 적 인 실행 순 서 는 다음 과 같 습 니 다.
a 태그 href 링크 는
태그
의 주 소 를 가리 키 고 여러 가지 방향 을 통 해 실제 동적 주소 로 실 행 됩 니 다.따뜻 한 알림: 일부 특수 문 자 는
에서 전의 가 필요 합 니 다. 예 를 들 어 '?' 는 '\?', '&' 는 '& amp;' 로 바 꿔 야 합 니 다.이 블 로 그 는 다음 과 같이 전 재 됩 니 다.
저자: Benett - Chen
링크:https://blog.csdn.net/sky_100/article/details/53410013
만약 에 모 르 거나 문제 가 있 을 때 아래 QR 코드 를 스 캔 할 수 있 습 니 다. 단체 교류 와 공 유 를 환영 합 니 다. 여러분 과 교류 하고 공부 할 수 있 기 를 바 랍 니 다!