diff --git a/bbs/qawrite_update.php b/bbs/qawrite_update.php
index 4c6902936..46756bae3 100644
--- a/bbs/qawrite_update.php
+++ b/bbs/qawrite_update.php
@@ -219,7 +219,7 @@ for ($i=1; $i<=$upload_count; $i++) {
$upload[$i]['filesize'] = $filesize;
// 아래의 문자열이 들어간 파일은 -x 를 붙여서 웹경로를 알더라도 실행을 하지 못하도록 함
- $filename = preg_replace("/\.(php|pht|phtm|htm|cgi|pl|exe|jsp|asp|inc|phar)/i", "$0-x", $filename);
+ $filename = preg_replace("/\.(php|pht|phtm|htm|shtml|shtm|cgi|pl|exe|jsp|asp|inc|phar|svg|svgz)/i", "$0-x", $filename);
shuffle($chars_array);
$shuffle = implode('', $chars_array);
diff --git a/bbs/write_update.php b/bbs/write_update.php
index da487a4ff..80c9da899 100644
--- a/bbs/write_update.php
+++ b/bbs/write_update.php
@@ -577,7 +577,7 @@ if(isset($_FILES['bf_file']['name']) && is_array($_FILES['bf_file']['name'])) {
$upload[$i]['filesize'] = $filesize;
// 아래의 문자열이 들어간 파일은 -x 를 붙여서 웹경로를 알더라도 실행을 하지 못하도록 함
- $filename = preg_replace("/\.(php|pht|phtm|htm|cgi|pl|exe|jsp|asp|inc|phar|svg|svgz)/i", "$0-x", $filename);
+ $filename = preg_replace("/\.(php|pht|phtm|htm|shtml|shtm|cgi|pl|exe|jsp|asp|inc|phar|svg|svgz)/i", "$0-x", $filename);
shuffle($chars_array);
$shuffle = implode('', $chars_array);
diff --git a/data/.htaccess b/data/.htaccess
new file mode 100644
index 000000000..81f095701
--- /dev/null
+++ b/data/.htaccess
@@ -0,0 +1,5 @@
+
+Order allow,deny
+Deny from all
+
+RedirectMatch 403 /session/.*
\ No newline at end of file
diff --git a/install/install_db.php b/install/install_db.php
index 731d6a3f0..4c47e1885 100644
--- a/install/install_db.php
+++ b/install/install_db.php
@@ -660,7 +660,7 @@ fclose($f);
// data 디렉토리 및 하위 디렉토리에서는 .htaccess .htpasswd .php .phtml .html .htm .inc .cgi .pl .phar 파일을 실행할수 없게함.
$f = fopen($data_path.'/.htaccess', 'w');
$str = <<
+
Order allow,deny
Deny from all