mdb를 asp로 변경하면 다운로드를 방지할 수 있다는 것은 말도 안되는 일입니다. Flashget을 사용하여 data.asp 파일을 테스트하고 data.mdb 파일로 저장하면 ACCESS로 열 때 손상되지 않는 것으로 나타났습니다. 1. 상상력을 발휘하여 데이터베이스 파일 이름을 수정하십시오.
그러나 공격자가 제3의 방법을 통해 데이터베이스에 대한 경로를 획득한 경우 해당 데이터베이스를 다운로드할 수 있습니다. 따라서 기밀성은 최소한입니다.
2. 데이터베이스 이름 접미사를 ASA, ASP 등으로 변경합니다.
이 방법은 일부 설정과 결합되어야 합니다. 그렇지 않으면 이 문서의 시작 부분에 있는 상황이 발생합니다.
(1) 바이너리 필드가 추가되었습니다.
(2) 이 파일에 <% 또는 %>를 추가하면 IIS는 ASP 구문에 따라 이를 구문 분석한 다음 500 오류를 보고하므로 당연히 다운로드할 수 없습니다. 그러나 단순히 데이터베이스의 텍스트나 메모 필드에 <%를 추가하는 것은 소용이 없습니다. ACCESS가 해당 콘텐츠를 처리하고 데이터베이스에 <%로 존재하게 되기 때문입니다. 이는 유효하지 않습니다! 올바른 방법은 목적을 달성할 수 있도록 OLE 개체 필드에 <%를 저장하는 것입니다.
방법:
먼저 메모장을 사용하여 내용이 <%인 새 텍스트 파일을 만들고 임의의 이름을 지정한 후 저장합니다.
다음으로, Access로 데이터베이스 파일을 열고, 새 테이블을 만들고, 임의의 이름을 지정하고, 테이블에 OLE 개체 필드를 추가한 다음, 레코드를 추가하고, 이전에 생성된 텍스트 파일을 삽입할 수 있습니다. "Data Packet"이라는 새 레코드를 보려면 그게 다입니다.
3. 데이터베이스 이름 앞에 #을 추가하세요.
데이터베이스 파일의 앞 이름에 #을 추가한 다음 데이터베이스 연결 파일(예: conn.asp)에서 데이터베이스 주소를 수정하면 됩니다. 다운로드 시 # 기호 앞부분만 인식되는 것이 원칙이며, 예를 들어 http://www.pcdigest.com/date/#123 을 다운로드 하려는 경우 다음 부분은 자동으로 제거됩니다. .mdb(존재한다고 가정). IE든 FLASHGET이든 http://www.test.com/date/index.htm(index.asp, default.jsp 등, IIS에서 설정한 홈페이지 문서)이 나옵니다.
또한 데이터베이스 파일 이름에 일부 공백을 유지하는 것도 비슷한 역할을 합니다. 주소 확인을 위한 HTTP 프로토콜의 특수성으로 인해 공백은 http://www.test.com/date/와 같이 %로 인코딩됩니다. 123;456.mdb, http://www.test.com/date/123%456.mdb에서 다운로드. 우리 디렉토리에는 123%456.mdb 파일이 전혀 없기 때문에 다운로드가 유효하지 않습니다. 이 수정 후에는 데이터베이스 주소를 노출하더라도 일반적으로 다른 사람들이 다운로드할 수 없습니다!
4. 데이터베이스 암호화
먼저 도구->보안->데이터베이스 암호화/해독을 선택하고 데이터베이스(예: Employee.mdb)를 선택한 다음 확인을 클릭하면 암호화 후 데이터베이스를 저장하는 창이 나타나며 이를 직원1로 저장합니다. mdb. 그런 다음 Employee.mdb가 인코딩된 후 Employee1.mdb로 저장됩니다. 위 작업은 데이터베이스에 대한 비밀번호를 설정하는 것이 아니라 데이터베이스 파일만 인코딩하는 것입니다. 그 목적은 다른 사람이 다른 도구를 사용하는 것을 방지하는 것입니다. 데이터베이스 파일의 내용을 봅니다.
다음으로 데이터베이스를 암호화합니다. 먼저 인코딩된 Employee1.mdb를 엽니다. 열 때 독점 모드를 선택합니다. 그런 다음 메뉴에서 도구->보안->데이터베이스 비밀번호 설정을 선택한 다음 비밀번호를 입력하십시오. 이렇게 하면 다른 사람이 Employee1.mdb 파일을 얻어도 비밀번호 없이는 Employee1.mdb를 볼 수 없습니다.
암호화 후에는 다음과 같이 데이터베이스 연결 페이지를 수정해야 합니다.
conn.open 드라이버={microsoft 액세스 드라이버(*.mdb)};uid=admin;pwd=데이터베이스 비밀번호;dbq=데이터베이스 경로
이번 수정 이후에는 데이터베이스를 다운로드 받더라도 다른 사람이 열 수 없습니다. (단, 데이터베이스 연결 페이지의 비밀번호가 유출되지 않은 경우)
그러나 Access 데이터베이스의 암호화 메커니즘은 상대적으로 간단하기 때문에 비밀번호가 설정되어 있어도 암호 해독이 쉽다는 점은 주목할 가치가 있습니다. 데이터베이스 시스템은 사용자가 입력한 비밀번호를 고정키와 XOR하여 암호화된 문자열을 구성하고, 이를 주소 &H42부터 시작하는 *.mdb 파일 영역에 저장한다. 따라서 훌륭한 프로그래머는 수십 줄의 작은 프로그램을 쉽게 만들어 Access 데이터베이스의 암호를 쉽게 얻을 수 있습니다. 따라서 데이터베이스가 다운로드되는 한 정보 보안은 알 수 없습니다.
5. 데이터베이스를 WEB 디렉터리 외부에 배치하거나 데이터베이스 연결 파일을 다른 가상 디렉터리에 배치합니다.
WEB 디렉터리가 e:/webroot인 경우 데이터베이스를 e:/data 폴더에 넣고 e:/webroot의 데이터베이스 연결 페이지에서 데이터베이스 연결 주소를 다음과 같이 수정할 수 있습니다. ../data/database 이름 형식, 데이터베이스를 정상적으로 호출할 수 있지만 WEB 디렉토리에 없기 때문에 다운로드가 불가능하도록! 이 방법은 일반적으로 가상 공간을 구매하는 사용자에게는 적합하지 않습니다.
6. ODBC 데이터 소스를 사용하십시오.
ASP와 같은 프로그래밍에서는 가능하면 ODBC 데이터 소스를 사용하고 프로그램에 데이터베이스 이름을 쓰지 마십시오. 그렇지 않으면 ASP 소스 코드의 기밀성과 함께 데이터베이스 이름이 손실됩니다. = 서버.맵패스(. ./123/abc/asfadf.mdb )
conn.open 드라이버={Microsoft Access 드라이버(*.mdb)};dbq=& DBPath
데이터베이스 이름이 아무리 이상해도, 숨겨진 디렉터리가 아무리 깊어도 ASP 소스 코드가 손상된 후에는 쉽게 다운로드할 수 있다는 것을 알 수 있습니다. ODBC 데이터 소스를 사용한다면 이런 문제는 없을 것입니다: conn.open ODBC-DSN 이름이지만 이것이 더 귀찮습니다. 디렉터리를 이동할 경우 데이터 소스를 재설정해야 합니다. 보다 편리한 방법은 다음을 참조하십시오. 7장. 8가지 방법!
7. MDB 등 데이터베이스 이름 확장 매핑 추가
이 방법은 IIS 설정을 수정하여 수행됩니다. IIS를 제어하는 친구에게는 적합하지만 관리자가 설정하지 않은 경우 가상 호스트를 구입하는 사용자에게는 적합하지 않습니다. 현재로서는 이 방법이 가장 좋은 것 같아요. 단 한 번의 변경으로 전체 사이트의 데이터베이스가 다운로드되는 것을 방지할 수 있습니다. 코드를 수정하지 않고 대상 주소가 노출되어도 다운로드를 방지할 수 있습니다.
IIS 속성---홈 디렉터리---구성---매핑---응용 프로그램 확장에 .mdb 파일의 응용 프로그램 구문 분석을 추가합니다. 여기서 선택한 DLL(또는 EXE 등)은 임의적이지 않은 것으로 보입니다. 선택이 적절하지 않은 경우에는 asp.dll 등을 선택하지 않는 것이 가장 좋습니다. 직접 테스트해볼 수 있어요
수정 후 http://www.test.com/data/dvbbs6.mdb와 같은 데이터베이스를 다운로드하십시오. 나타납니다(404, 500 등의 오류).
8: .net 사용의 장점
Dongwang의 Mu Niao는 불법 파일 다운로드를 방지하기 위해 WBAL 안티 핫링크 도구를 작성했습니다. 자세한 내용을 보려면 http://www.9seek.com/WBAL/에 로그인하세요.
그러나 이는 로컬이 아닌 다운로드만 방지할 뿐이며 데이터베이스 다운로드를 실제로 방지하는 기능은 없습니다. 하지만 이 방법은 방법 5와 거의 동일합니다. 로컬로 다운로드할 수 없도록 .NET 파일을 수정하면 됩니다!
이 중 7번째와 8번째 방법만 일률적으로 변경할 수 있으며, 한 번만 구성을 수정하면 전체 사이트의 데이터베이스가 다운로드되는 것을 방지할 수 있으며, 그 외 여러 가지 방법은 각각 데이터베이스 이름과 연결 파일을 수정해야 합니다. 더 번거롭지만 가상 호스트의 경우 친구는 이것만 할 수 있습니다!
사실 여섯 번째 방법은 특별한 기능을 얻을 수 있는 다섯 번째 방법의 확장이어야 하지만, .net을 지원하지 않거나 번거로운 설정을 두려워하는 호스트의 경우 다섯 번째 방법을 직접 사용하는 것이 더 좋으며, 여섯 번째 방법은 기본적으로 사용됩니다. 방법은 동일한 호스트의 포럼이나 방명록을 복사하여 연결한 다음 클릭하여 다운로드할 수 있습니다(해당 참조 페이지는 동일한 호스트에서 왔기 때문).
9. NTFS 파티션의 파일 권한 설정을 사용합니다(by percyboy)
우리는 ASP.NET이 ADO.NET을 사용하여 데이터베이스에 액세스하고, 매우 일반적으로 사용되는 저가형 데이터베이스 중 하나인 Access 데이터베이스가 OleDb 연결을 통해 액세스할 수 있다는 것을 이미 알고 있습니다. 이 문서에서는 ASP.NET에서 나타날 수 있는 몇 가지 오류 메시지에 대해 설명합니다. Access 2000과 Access XP에서 만든 데이터베이스 파일에는 액세스 오류가 발생할 때 다른 오류 메시지가 표시됩니다. 그것이 모두에게 도움이 되기를 바랍니다. 또 다른 중요한 점은 이 기사를 통해 모든 사람이 ASP.NET에서 Access 데이터베이스 파일의 NTFS 권한 설정을 새롭게 이해하게 되기를 바란다는 것입니다.