YesYo.com MintState Forums  
뒤로    YesYo.com MintState BBS > Miscellaneous > Q&A
검색
멤버이름  오토
비밀번호 
 

 
작성일 : 10-04-14 20:51
민트팝업 보안의 취약점??
 글쓴이 : 명예
조회 : 5,803  
   http://www.munstar.com [1584]
팝업 보여주는 레벨을 설정을 해놨는데. 비회원이라고해도 팝업 주소만알면 주소창에 입력하고 이동하면 해당팝업이
그대로 노출되어버립니다..

예를들면

http://www.munstar.com/MintUtil/popup.html?m=test&pop_id=11

이 팝업을 레벨 7이상 회원에게만 노출하고싶은데 레벨이 안되거나 비회원이  팝업 아이디의 뒤 숫자만 바꿔가면서 쭈욱 테스트해보면
팝업을 다 얻을 수 있더라구요..

팝업창이 해당주소로 바로 들어가더라도 설정해놓은 레벨이 아니면 경고창과함께 안뜨도록하려면 어떻게 해야하나요???

두번째로, 레벨 1이상 볼수있다 하더라도 팝업 html 안에서 아래와같이 설정하면 해당 구문만은 지정한 레벨만 보이도록 하고싶은데 이건 방법이 없는지요??

<?if($member[mb_level] > 9) {?>
<a class="menuItem" href="/bbs/board.php?bo_table=B49"><font color=#ffffff>그누보드스킨</font></a>
<a class="menuItem" href="/plugin/webhard/webftp"><font color=#ffffff>아작웹하드</font></a>
<? } ?>

MintState 10-04-15 10:16
 
하. 별로 그런 문제는 생각하지 않았는데..
우선 첫번째 문제는...
popup.html  파일을 열어서..

if ($data[pop_level] > $member[mb_level]) alert_close('해당 레벨은 볼수 없어요~');
을 추가 해주면 됩니다.

두번째 문제는... 조금 어렵습니다. 레벨에 따라서 구분을 해줘야 하는데.
템플릿정도 이용하면 될것 같습니다.
다만 팝업을 html이나 text를 쓰지 않고 WYSIWYG 에디터를 씁니다. 프로그램이나 html을 모르는 분들을 위해 쉽게 쓸수 있기 때문에 WYSIWYG을 쓰는거죠.
님이 원하시는것은 WYSIWYG을 쓸수 없습니다. WYSIWYG을 써도 되긴하지만 여러가지 문제가 생김니다.

간단히 응용하시려면..
$data[pop_contents] = preg_replace_callback('@\\[LEVEL([^\\]]*)\\](.*)\\[/LEVEL\\]@Usi', 'level_pass', $data[pop_contents]);
function level_pass($matche)
{
global $member;
if (strlen($matche[1]) == 0) {
$text .= $matche[2]; // 혹시 레벨을 지정하지 않는 실수를 할까봐....
} else {
if ($member[mb_level] >= $matche[1]) $text .= $matche[2];
}
return $text;
}

예를들어 "레벨 4이상만 보입니다. [LEVEL 4]레벨4내용[/LEVEL]<br /> 레벨 2이상만 보입니다. [LEVEL 2]레벨2내용[/LEVEL] " 이런식의 내용이 입력 되었다면 레벨 2의 멤버는..

레벨 4이상만 보입니다.
레벨 2이상만 보입니다. 레벨2내용

이런식으로 보입니다. 지정레벨 이상만 내용을 볼수 있다는 거죠..
명예 10-04-15 17:17
 
popup.html

<?
include_once("./_common.php");

include_once("$g4[path]/MintUtil/MintLib.php");

if(isDbTable($Mint[DB_popup]) != 1) {
alert_close($Mint[name].'(POPUP) DB가 생성되지 않았습니다.');
}

$sql = "select * from $Mint[DB_popup] where pop_id='$pop_id' ";
$sel = mysql_query($sql);
$data = mysql_fetch_array($sel);

$cookie_id = "popup_".$data[pop_id];

$data[pop_contents] = preg_replace_callback('@\\[LEVEL([^\\]]*)\\](.*)\\[/LEVEL\\]@Usi', 'level_pass', $data[pop_contents]);
function level_pass($matche)
{
global $member;
if (strlen($matche[1]) == 0) {
$text .= $matche[2]; // 혹시 레벨을 지정하지 않는 실수를 할까봐....
} else {
if ($member[mb_level] >= $matche[1]) $text .= $matche[2];
}
return $text;
}

if ($data[pop_level] > $member[mb_level]) alert_close('해당 레벨은 볼수 없어요~');
?>

이렇게 넣고 테스트했더니 말씀해주신것처럼 해결이 되었습니다^^ 감사합니다.
 
 

Total 49
번호 제   목 글쓴이 날짜 조회
49 안녕하세요 체팅방 설치 IE는 가능한데 크롬이 지원 안됩니다. nick1224 05-25 3382
48 채팅방을 깔았는데요... 에러가 떠요 (그누보드) (1) 라아 11-13 3434
47 토렌토 소스중 질문이요 ㅠ (1) 푸푸 11-01 3276
46 민트채팅 문의요~~^^ 밤일기 08-30 4059
45 민트 채팅문의드립니다. (1) 신재영 04-25 4403
44 블로그에 토렌토파일 EUC-KR로 변환소스 댓글로 올리신거...여기에다… (3) 수리매… 02-06 4875
43 블로그에서 질문드렸었는데요^^ orange 01-31 4300
42    블로그에서 질문드렸었는데요^^ (1) MintState 02-01 4515
41 민트채팅방 유지시키기 질문드려요.. (2) 명예 04-27 4815
40 민트 채팅방의 인원수를 더 늘리고싶습니다. (1) 명예 04-27 5288
39 민트팝업에서 그누보드 common.php 파일을 인클루드하고싶습니다... (1) 명예 04-27 6530
38 민트팝업에서 회원연동이 가능할까요??? (1) 명예 04-19 5080
37    민트팝업에서 회원연동이 가능할까요??? 명예 04-21 5117
36 민트팝업 보안의 취약점?? (2) 명예 04-14 5804
35 민트채팅을 팝업으로 띄울수는 없을까요? (1) 명예 04-12 4839
34 minutil 추천관리 문의 (2) 카가 03-31 5277
33 민트 배너출력시 간격 질문드립니다.. (2) 명예 03-25 4864
32 채팅방문의드립니다... (1) 태양11 03-13 4768
31 MintUtil 배너관리의 기능 첨부에 관한 문의 드립니다. (2) 명예 03-12 5199
30 MintUtil 다운로드 (1) shop1234 01-26 4918
 1  2  3  
모바일 버전으로 보기
CopyRight ©2004 - 2017, YesYo.com MintState. ™