권장 : ASP의 FileSystemObject 객체에 대한 자세한 설명 지정된 드라이브가 존재합니까? 이 예제는 드라이브 이스 메소드를 사용하여 드라이브가 존재하는지 여부를 감지하는 방법을 보여줍니다. 코드는 다음과 같습니다.
데이터베이스가 끊어지면 많은 사람들이 그것을 다루는 방법을 모르거나 처리가 불완전되어 웹 페이지가 열린 후에도 트로이 목마가 여전히 나타납니다. 이 기사는 참조를위한 더 나은 솔루션을 소개합니다.1 단계 : 기존 데이터베이스에 대한 백업을 만듭니다.
2 단계 : 데이터베이스에서 JS 트로이 목마를 제거하려면 다음 ASP 파일을 실행하십시오. (참고 : Conn.asp는 생략 됨)
| 'JS Trojan 컨텐츠를 여기에 넣으십시오. 데이터베이스의 JS Trojan 콘텐츠로 변경하십시오. <!-#includefile = conn.asp-> <% Server.ScriptTimeout = 180 setrstschema = conn.openschema (20) k = 1 dountilrstschema.eof '전송 데이터베이스 테이블 ifrstschema (table_type) = tablethen response.writek &. <fontcolor = red> <b> & rstschema (table_name) & </b> </font> : 'show table name setrs = server.createobject (adodb.recordset) sql = select*from [& rstschema (table_name) &] Rs.Opensql, Conn, 1,3 fori = 0tors.fields.count-1 '테이블에서 필드를 이동합니다 ifint (rs (i) .type) = 129orint (rs (i) .type) = 130orint (rs (i) .type) = 200orint (rs (i) .type) = 201orint (rs (i) .type) = 202orint (rs (i) .type) = 203then '만 다루고 있습니다 conn.Execute (update [& rstschema (table_name) &] set & rs (i) .name & = replace (cast (& rs (i) .name & asvarchar (8000)), 'JS Trojan 컨텐츠를 여기에 put', '')) Response.writers (i) .name && rs (i) .type & '실행 된 필드 이름을 표시합니다. endif 다음 응답 <br> endif rstschema.movenext k = k+1 고리 응답. 실행을 성공적으로 작성하십시오 %> |
많은 데이터베이스 테이블이있는 경우 위의 Traversal 데이터베이스 구조는 실행되기 전에 IIS에 의해 중지됩니다. 현재로서는 할 수 있습니다
| rstschema (table_type) = 테이블이면 |
k 값의 범위는 다음과 같이 적절하게 추가됩니다.
| ifrstschema (table_type) = tablek> 10andk <20then |
이런 식으로 한 번에 9 개의 테이블 만 작동됩니다.
3 단계 : 3 단계 :
데이터베이스 JS 주입의 특성에 따라 (<script, </script> 및 http : //)와 같은 문자가 포함됩니다.
Conn.asp에 다음 코드를 넣으십시오.
| functioncheack_sqljs () '데이터베이스 외부 링크 js 주입 : true는 외부 링크 js 주입을 발견하는 것입니다. dimf_post, f_get check_sqljs = false ifrequest.form <> 그런 다음 양식 제출시 감지 foreachf_postinrequest.form if (lcase (lcase (request.form (f_post)), <script) <> 0orinst (lcase (lcase (reques.form (f_post)), </script>) <> 0) andinstr (lcase (reques.form (f_post)), http : //) <> 0then check_sqljs = true exitfor endif 다음 endif ifrequest.querystring <> QueryString 제출에 대한 탐지 foreachf_getInRequest.querystring if (lcase (request.form (f_get)), <script) <> 0orinst (lcase (lase.form (f_get)), </script>) <> 0) andinstr (lcase (reques.form (f_get)), http : //) <> 0then check_sqljs = true exitfor endif 다음 endif 최종 기능 장애 functioncheckdatafrom () '제출 된 데이터 확인 출처 : True는 사이트 외부에서 제출됩니다. CheckDataFrom = true입니다 server_v1 = cstr (request.servervariables (http_referer)) server_v2 = cstr (request.servervariables (server_name)) ifmid (server_v1,8, len (server_v2)) <> server_v2then CheckDataFrom = false endif 최종 기능 장애 ifcheack_sqljsorCheckDataThenten response.write <scriptLanguage = javaScript> alert ( '실행은 금지되어 있고 불법적 인 작동입니다.'); </script> 응답 () endif |
공유 : ASP 통화 서브 루틴 해석을위한 튜토리얼 ASP 프로그램은 vbscript 및 기타 방법을 통해 서브 루틴을 호출 할 수 있습니다. vbscript, 샘플 코드를 사용하여 서브 루틴을 호출하십시오. HTML HEAD %SUBVPROC (NUM1, NUM2) 응답 .WRITE (NUM1*NUM2) ENDUB % /HEAD BODY P이 프로그램을 호출 할 수 있습니다 : /PP 결과 : %CallVBPROC (3,4) % /PP 또는 예 : /PP 결과 : /PP 결과 : /PP 결과 : /PP 결과 : /PP 결과 : /PP 결과 : /PP 결과 : /PP 결과 : /PP