2012-01-13 6 views
-1

사용자로부터 검색어가 있는데 브라우저에 적용하기 전에 처리하고 싶습니다. htaccess로 검색 엔진 최적화 서비스를 사용하고 있기 때문에 검색 URL은 다음과 같이 보입니다./search/[사용자 쿼리] 사용자가 장난 꾸러기를하지 못하도록해야합니다 .. :) ../include/conf.php 검색과 같이 결과적으로 구성 파일이 없어집니다. 공백을 제거하고, 점 (문제를 일으킬 것입니다), 쉼표 등을 제거하는 것과 같은 쿼리를 처리하고 싶습니다.자바 스크립트에서 점과 같은 특수 문자 바꾸기

var q = document.getElementById('q').value; 
var q = q.replace(/ /gi,"+"); 
var q = q.replace(/../gi,""); 
document.location='search/'+q; 

첫 번째 대체는 정상적으로 작동하지만 두 번째 것은 내 검색어로 이어집니다.이 위험한 문자를 안전하게 대체하는 방법은 무엇입니까?

답변

2

JavaScript를 사용하지 않거나 curl을 사용하면 여전히 "장난 꾸러기" "할 수 있습니까? 클라이언트 측에서 다음과 같이 탈출하는 정신을 수행하십시오 :

encodeURIComponent(document.getElementById('q').value) 

보안 점검을 서버에 두십시오. 악의적 인 사용자가 수행 할 수있는 것에 놀랄 것입니다 (간단한 . 대신 간단한 이스케이프 시퀀스를 사용하는 것이 가장 간단한 예입니다).

0

정규 표현식의 점은 무엇이든 일치합니다. 당신은 백 슬래시 ('\')로 탈출해야합니다

var q = q.replace(/\.\./gi,""); 
2

나는이 서버 쪽을 할 것 - 사람이 페이지에 JS를 변경하거나 아예 스위치를 끄고하는 것은 너무 쉽다. 서버 측에서 실행되는 검색 스크립트는 쉽게 조작 할 수 없으므로 일관되게 검색을 필터링 할 수 있습니다.

검색 결과를 제한하고 싶은 경우 ... 민감한 구성 파일을 표시 할 수있는 경우 검색 범위가 너무 좁을 수 있습니다.