inc 파일
- 헤더 정보를 참조하기 위해 소프트웨어 프로그램의 소스코드에서 사용하는 포함 파일이다.
- .h 파일 형식과 유사하다.
- 여러파일에 똑같은 소스가 들어가 있을 경우에 소스의 중복을 줄이기 위해서 만든 파일이다.
- 소스의 최적화, 유지보수 효율 증대 등의 효과가 있음.
- 주로 DB연결 / 호출 부분에서 가장 많이 쓰인다.
php에서 사용될 경우 INC 파일 사용의 단점도 존재한다.
- php 파일이 inc 파일을 참조하고 서버가 .inc 파일을 구문분석하도록 구성되지 않은 경우가 일반적이다.
- 이 경우에 사용자는 URL 디렉토리를 방문하여, .inc 파일에서 php 소스코드를 볼 수 있다.
- 따라서 php에서 inc파일을 포함 파일로 사용할 때 주의해야 한다.
- 사용자들이 URL을 직접 만문해서 .inc 파일에서 php 소스코드를 볼 수 있다.
- 이 경우에 데이터베이스 연결 문자열 프로퍼티들이 전부 노출될 수 있는 위험이 존재!(!!!)
- 때문에 .php 확장자를 부여하고 include 폴더에 넣어서 쓰는게 같은 효과를 내면서 위에서 언급한 보안 위험 없이 쓸 수 있으니 그렇게 쓰는게 낫다.
ㄴ 실제로 php에 php data objects 연결을 하고 pdo 를 반환하도록 했더니 이상없이 실행 잘 실행된다.
<?php
function connectDB(): PDO
{
try{
$PDO = new PDO("mysql:host=localhost:3306;dbname=ACCOUNTS", "root", "비밀");
$PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "PDO 연결 성공 :)";
return $PDO;
}catch (PDOException $exception){
throw new Exception("PDO 연결 실패 :(".$exception->getMessage());
}
}
?>
<?php
include ("./db_connect.php");
$sql = "SELECT service_name, userid FROM ACCOUNTS.accounts WHERE service_name = :service_name; ";
$pdoInstance = connectDB();
// -- prepared statesments
$prepared_statements = $pdoInstance->prepare($sql);
$service_name = "업비트";
// -- query-variants > data binding
$prepared_statements -> bindParam(":service_name", $service_name);
$prepared_statements->execute();
while($row = $prepared_statements -> fetch(PDO::FETCH_ASSOC)){
$name = $row['service_name'];
$userid = $row['userid'];
echo "\n{$name} - {$userid}";
}
'Language > php' 카테고리의 다른 글
post restful api / 프리플라이트 / 왜 배포할 때 모든 도메인에서의 요청을 다 받으면 안될까 (0) | 2024.09.19 |
---|---|
php자체에 대해서 알아보자 (7) | 2024.09.12 |
PDO를 활용한 데이터베이스 연동 (2) | 2024.09.11 |
간단한 프로파일링 예시 (0) | 2024.09.11 |
캐싱 예시 (0) | 2024.09.11 |