PB 응용 프로그램에서 데이터베이스 연결의 보안 경고

출처: 인터넷
작성자: 사용자
키워드: 안전 예방
인터넷의 인기와 네트워크 기술의 지속적인 개발, 데이터의 기밀성 요구 사항을 더 높다. 일반적인 서버/클라이언트 모드 mis 개발에서 유연성 및 프로그램, 조인 매개 변수 (사용자 ID와 로그인 비밀 번호)의 확장성에 대 한 데이터베이스 서버와 연결을 유지 하는 프로그램 (사실, 죽음은 좋은 방법이 아니다 작성), 프로그램 죽음에 기록 되지 수 있기 때문에 일반적인 방법의 두 종류가 있다: 하나는 레지스트리에 join 매개 변수를 저장 하는 및 다른 INI 파일을 직접 읽는 것은. 그리고 여러 가지 방법의 안전은 매우 좋은, 주고 사람들 기회. INI 파일 및 사용자 인터페이스를 제공 하는 프로그램에는 데이터베이스의 영리한 처리를 통해 데이터베이스 응용 프로그램의 보안을 해결 하는 방법을 발견, 데이터베이스를 수정할 수 있습니다 언제 든 지 연결, 하지만 단서와 외부 매개 변수 알지 들 키 지. 구현 방법은 다음과 같습니다: 1, INI 파일을 만들고, 레코드 데이터베이스 follows://Create INI 파일 (rsgl.ini) [데이터베이스] dbms 일부 편리한 프로그램 배포 매개 변수 DBMS, 서버 이름, Logid 특정 조인 o84 오라클 = 8.0.4 servername gxmistest = / 데이터베이스 서버 이름 LOGID / RSGL = / / 실제 데이터베이스 로그인 사용자, 중간 사용자 술집, 로그인 암호 술집을 만들 데이터베이스에 술집 사용자 연결, 리소스 사용 권한 Tbl_pub_passshadow 테이블을 만들면 테이블 생성에서 (Passshadow VARCHAR2 () not NULL) 실제 데이터베이스 조인 (암호화, 물론)에 대 한 로그인 암호를 보유 하는 데 사용 됩니다. 암호화 기능은 웹에 훨씬 더 많은 그리고이 피곤한 문이 아니다. 내가 만든 문자열 암호화 기능 F_password (string old_str, 문자열 new_str 정수 jm_mode), jm_mode 매개 변수 함수, Old_str, new_의 추가 (솔루션)을 구별 하 Str 두 매개 변수 추가 (솔루션) 밀도 문자열입니다. 2, 프로그램 스크립트는 다음과 같습니다 오픈 이벤트 데이터베이스 로그인 가입의 응용 프로그램에서 응용 프로그램을 작성 하기 시작 했다: 문자열 Ls_inifile, ls_starttimes 문자열 Ls_logid, ls_logpass, ls_dbms Ls_pass, ls_sql, ls_code, ls_server 문자열 / / Ls_inifile 파일 INI 설정 'Rsgl.ini' ls_server = = profilestring (Ls_inifile," 데이터베이스 "," 서비스Ername "," ") Ls_logid ProfileString (ls_inifile,"데이터베이스","Logid"=" ") / 술집 SQLCA 프로필. DBMS profilestring = (ls_inifile, "데이터베이스", "DBMS", "") SQLCA. Logpass = '술집' SQLCA. ServerName Ls_server SQLCA =. Logid = "술집" SQLCA. 자동 커밋 = False SQLCA. Dbparm = "" Sqlca;를 사용 하 여 연결 사용자 RSGL 암호화 Passshadow 사용자 암호에: Tbl_pub_passshadow;에서 ls_pass 암호 해독 Ls_pass F_password (ls_pass, 0) = Sqlca;를 사용 하 여 분리 실제 데이터베이스 사용자 Rsgl SQLCA 조인합니다. ServerName Ls_server Sqlca =. DBMS profilestring = (ls_inifile, "데이터베이스", "DBMS", "") SQLCA. Dbparm = profilestring (ls_inifile, "데이터베이스", "Dbparm", "") Sqlca.database (ls_inifile, "데이터베이스", "Dat ProfileString = Abase "," ") Sqlca.userid = ProfileString (ls_inifile,"데이터베이스","아이디"," ") Sqlca.dbpass = ProfileString (Ls_inifile," 데이터베이스 "," Dbpass "," "") Sqlca.logid Ls_logid Sqlca.logpass = ls_pass = / / profilestring (ls_inifile, "데이터베이스", "Logpass" "") SQLCA. 자동 커밋 Sqlca;를 사용 하 여 잘못 된 연결 = Sqlca.sqldbcode <> 0 다음 CA를 선택 하는 경우Se sqlca.sqldbcode 경우 1017 MessageBox (문자열 (SQLCA. Sqldbcode), "참가할 수 없습니다 데이터베이스. ~ r 오류: 잘못 된 사용자 이름 그리고 암호. 관리자를 문의 하십시오! " 케이스 12154 MessageBox (Sqlca 문자열입니다. Sqldbcode), "참가할 수 없습니다 데이터베이스. ~ r 오류: 서버 이름이 존재 하지 않습니다! 시스템 관리자에 게 문의. " 경우 999 MessageBox (문자열 Sqlca. Sqldbcode), "참가할 수 없습니다 데이터베이스. ~ r 오류: 데이터베이스를 현재 설치를 지원 하지 않습니다! " 케이스 다른 MessageBox (문자열 (SQLCA). Sqldbcode), "참가할 수 없습니다 데이터베이스. ~ r 오류: "+ sqlca.sqlerrtext" 최종 선택 중단 가까운 다른 오픈 (w_gd_frame) //Open 응용 프로그램의 주 창 끝 3, 다음, 언제 든 지 데이터베이스 조인 수정 권한이 있는 사용자를 수 있는 사용자 인터페이스를 작성 하는 경우 Parameters。 창 인터페이스 (파일 이름: dblogon.jpg), 위에 창 컨트롤에는: 컨트롤 이름 컨트롤 속성 Sle_server Singlelineedit sle_login singlelineedit Sle_oldkl Sle_pass singlelineedit sle_repass singlelineedit 단추 cb_2 단추 cb_1 명령 단추에 대 한 Cb_1 이벤트는 다음과 같습니다:를 클릭 문자열 Inifile, ls_pass, ls_logid, ls_repass, ls_old 문자열 Ls_k, ls_user, ls_sql ls_inifile = 'Rsgl.ini' 트랜잭션 pub_tr = 트랜잭션 pub_tr를 만듭니다. DBMS profilestring = (ls_inifile, "데이터베이스", "DBMS", "") pub_tr. Logpass = '술집' pub_tr. ServerName Sle_server.text pub_tr =. Logid = "술집" pub_tr. 자동 커밋 = False pub_tr. Dbparm = "" Pub_tr;를 사용 하 여 연결 Ls_old = Sle_oldkl.text Ls_user = 낮은 (트림 (sle_logid.text))//Get 데이터베이스 조인 원래 사용자 암호 선택 Passshadow에: ls_k Tbl_pub_pas에서 Sshadow Pub_tr;를 사용 하 여 경우 Ls_old <> F_password (ls_k, 0) 다음 MessageBox ("프롬프트", "원래 암호 하지 올바른!") 끝을 반환 / / 확인 암호 Ls_pass Sle_pass.text Ls_repass = sle_repass.text = Ls_repass <> Ls_pass 다음 MessageBox (" ","확인 암호가 올바르지 않은 경우, 다시 입력 해 주시기 바랍니다!") 끝 경우 Setprofilestring (Ls_inifile, "데이터베이스", "Servername", Sle_server.text) setprofilestring (Ls_inifile,"반환 데이터베이스 "," Logid ", Ls_user) //Modify 사용자의 가입 암호 Ls_sql '사용자 변경' = '구분' ls_user + + ls_pass 실행 즉시: ls Sqlca;를 사용 하 여 _sql Ls_pass F_password (ls_pass, 1) = 업데이트 Tbl_pub_passshadow 설정 Passshadow =: ls_pass Pub_tr;를 사용 하 여 Pub_tr;를 사용 하 여 커밋 Sqlca;를 사용 하 여 커밋 Pub_tr;를 사용 하 여 분리 클릭된 이벤트 주변 (부모)에 대 한 cb_2 명령 단추는 다음과 같습니다: 닫기 (부모) 4,이 모든 확인. 모든 코드 PowerBuilder 6.5 테스트와 WIN98 환경에 전달 되었습니다. 책임 편집자 Zhaoyi zhaoyi#51cto.com 전화: (010) 68476636-8001 (0 표)를 강제로 유혹 (0 표) 넌센스 (0 표) 전문가 (0 표) 전달 (0 표) 원문 제목 파티 (0 표): PB 응용 프로그램의 데이터베이스 연결의 보안 경고네트워크 보안 홈으로 돌아가기
관련 문서

연락처

이 페이지의 내용은 인터넷에서 가져온 것이므로 Alibaba Cloud의 공식 의견이 아닙니다.이 페이지에서 언급 된 제품 및 서비스는 Alibaba Cloud와는 관련이 없으므로이 페이지의 내용이 골칫거리 인 경우 저희에게 알려주십시오. 우리는 5 일 근무일 이내에 이메일을 처리 할 것입니다.

커뮤니티에서 표절 사례를 발견한 경우 info-contact@alibabacloud.com 으로 관련 증거를 첨부하여 이메일을 보내주시기 바랍니다. 당사 직원이 영업일 기준 5일 내에 연락 드리도록 하겠습니다.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.