1-0. SQL Injection을 위한 Windows 환경 준비하기
1. Windows APM 통합 환경 구축
Autoset 10.7.2 사용
2. mysql 비밀번호 변경
MySQL 콘솔창에 접속하여
mysql -u root -p를 입력하면 Access denied for user 'root'@'localhost' (using password: YES) 오류가 발생한다.
초기 비밀번호를 지정하지 않았다면
mysql -u root로 접속한 후 다음과 같이 비밀번호 변경 완료
https://likethefirst.tistory.com/entry/MySQL-Column-Password-is-not-updatable
3. ORACLE database 21c / SQL Server 2019와 PHP 7.2 연동
3-1. ORACLE
3-1-1. ORACLE XE 다운로드
3-1-2. PHP 연동
<?php
// Connects to the XE service (i.e. database) on the "localhost" machine
$conn = oci_connect('c##sa', 'root', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$stid = oci_parse($conn, 'SELECT user FROM dual');
oci_execute($stid);
echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
echo "<tr>\n";
foreach ($row as $item) {
echo " <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : " ") . "</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";
?>
3-1-3. 오류 해결 / ORA-12560: tns:프로토콜 어댑터 오류 + ORA-12541 tns 리스너가 없습니다
(밴드를 왜 덕지덕지 붙여놓았느냐 하면.. 해결하면서 맘이 마이 아팠거든여... 연휴 점심에 시작해서 밤에 끝난..)
❤️🩹 oracle instant client x64 설치
❤️🩹 lsnrctl status에서 '리스너 매개변수 파일 경로' 확인
❤️🩹 listener.ora 파일 중 HOST = 0.0.0.0으로 변경
❤️🩹 이후 lsnrctl stop / lsnrctl start (또는 서비스에서 OracleOraDB21Home1TNSListener 재기동)
❤️🔥 연동완료
3-2. SQL Server(MSSQL)
3-2-1. MSSQL 2019 다운로드 (구성 관리자, SSMS)
3-2-2. PHP 연동
<?php
$serverName = "127.0.0.1"; //serverName\instanceName
$connectionInfo = array( "Database"=>"master", "UID"=>"sa", "PWD"=>"root");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn ) {
echo "Connection established.<br />";
}else{
echo "Connection could not be established.<br />";
die( print_r( sqlsrv_errors(), true));
}
?>
3-2-3. 오류 해결 / Fatal error: Call to undefined function mssql_connect()
❤️🩹 SQLSRV 중에 php_sqlsrv_72_ts_x64.dll 와 php_pdo_sqlsrv_72_ts_x64.dll가 있는 버전 다운로드
특정 버전부터는 mssql_connect() 함수가 지원되지 않아 sqlsrv_connect() 함수를 사용해야 한다.
파일명 형식은 php_(pdo)_sqlsrv_[PHP 버전]_[nts|ts]_x64.dll이므로,
PHP 5.6버전을 사용중이라면 php_sqlsrv_56 과 같은 파일명이어야 한다.
또한 아파치 웹서버에 PHP가 올라가 있는 형태라면 nts가 아닌 ts 파일을 사용해야 한다.
❤️🩹 C:\AutoSet10\server\bin\ext 에 해당 파일 붙여넣으면서, 파일명을 php_sqlsrv 와 php_pdo_sqlsrv로 변경
❤️🩹 C:\AutoSet10\server\conf\php.ini에 extension=sqlsrv와 extension=pdo_sqlsrv 추가
❤️🩹 이후 웹서버 재기동
❤️🔥 연동완료
4. 끝
비~버에서 세 종류의 DBMS Query를 사용할 수 있게 되었다!
+. 참고자료
1) 전체적인 설명 : https://www.lesstif.com/dbms/php-ms-sql-driver-windows-118095924.html
2) nts? ts? : https://mkklab.tistory.com/8
3) ORACLE TNS 환경설정 파일 : https://hot-computer.tistory.com/entry/%EC%98%A4%EB%9D%BC%ED%81%B4-%EC%98%A4%EB%A5%98-%EB%A6%AC%EC%8A%A4%EB%84%88%EA%B0%80-%EC%97%86%EC%9C%BC%EC%8B%A0%EA%B0%80%EC%9A%94-TNS%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C-%EC%96%B4%EB%8C%91%ED%84%B0-%EC%98%A4%EB%A5%98-TNS-12560
4) ORACLE TNS 서비스 확인 : https://velog.io/@bby/%EB%94%94%EB%B9%84%EB%B2%84-%EC%98%A4%EB%9D%BC%ED%81%B4-%EC%97%B0%EA%B2%B0-%EC%97%90%EB%9F%AC-TNS-12541-TNS%EB%A6%AC%EC%8A%A4%EB%84%88%EA%B0%80-%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4
5) ORACLE listener.ora 파일 수정 : https://growupcoding.tistory.com/28