공식 웹사이트에서 최신 무들 설치 패키지를 다운로드하고 압축을 푼 후 서버에 업로드하세요. 프롬프트에 따라 구성을 수정하고 무들 데이터베이스 설정을 포함하여 설치를 완료합니다. 따라서 자체 서버와 데이터베이스가 있어야 합니다. 아래 데모에서는 로컬 PC에 구성된 Apache와 mysql을 사용합니다. 무들 설치에 대한 온라인 튜토리얼이 많이 있으므로 여기서는 더 이상 소개하지 않겠습니다.
설치 후 관리자 계정을 등록합니다. 그런 다음 로그인하여 강좌를 만드세요.
강좌 예제를 만든 후 학생의 사용자 계정을 추가하세요.
학생의 사용자 계정을 추가한 후 학생들에게 '강좌 예시'를 학습할 수 있는 권한을 부여하세요. '참가자'에서 '사용자 등록'을 클릭하면 학생이 강좌를 배울 수 있습니다.
여기서는 간단한 코스 생성을 완료하고 학생 사용자를 추가했습니다. 그런 다음 빈 코스에 암호화된 콘텐츠를 추가하겠습니다. DRM-X 4.0 암호화 플랫폼으로 일부 비디오, 오디오 또는 PDF 파일을 암호화하고 DRM-X 4.0을 무들과 통합하고 암호화된 파일을 무들에 삽입할 수 있습니다. 학생들이 쉽고 안전하게 강좌를 배울 수 있도록 도와드립니다.
Xvast 공식 웹사이트에서 Windows 버전의 Xvast 브라우저를 다운로드하세요: https://www.xvast.com/kr. 설치 후 Xvast를 실행하세요.
Xvast Browser를 통해 DRM-X 4.0 계정을 등록하려면 https://4.drm-x.com/register.aspx
새로 등록한 DRM-X 4.0 계정에 로그인합니다. DRM-X 4.0 제어판에서 먼저 "권한"을 클릭하여 새 권한을 추가합니다. 권한 설명, 권한 가격, 공개 횟수, 최초 사용 후 만료, 문서 보호, 인쇄 허용 안 함, 워터마크 활성화를 설정합니다. 불법 복제를 방지하기 위해 워터마크 내용을 설정할 수 있습니다. 동적 워터마킹은 두 가지 표시 모드를 지원합니다. 첫 번째 방법은 워터마크의 위치와 변경 빈도를 설정하는 것입니다. 두 번째 유형의 워터마크 표시는 보안 수준이 더 높은 마키 효과입니다.
DRM-X 4.0은 3.0의 블랙리스트 방지 화면 녹화 기능을 계승했습니다. 블랙리스트 프로그램을 설정하면 블랙리스트에 대한 녹화나 스크린샷을 효과적으로 방지할 수 있습니다. 사용자가 보호된 파일을 열었을 때 Xvast가 블랙리스트 프로그램이 실행 중인 것을 감지하면 Xvast는 즉시 블랙리스트 프로세스를 차단합니다. 현재 블랙리스트 프로그램에는 수백 개의 화면 녹화 및 스크린샷 프로그램이 포함되어 있습니다.
Haihaisoft는 독특한 스마트 방지 화면 녹화 기술을 제공합니다. 시중에 판매되는 화면 녹화 소프트웨어는 물론 향후 녹화 화면 소프트웨어까지 자동으로 효과적으로 감지할 수 있습니다. 이는 콘텐츠 제공자가 DRM-X 4.0으로 보호되는 콘텐츠의 권리를 더 잘 제어하는 데 도움이 됩니다.
이 단계를 통해 우리는 맞춤형 라이센스를 얻었습니다.
그런 다음 위에서 추가한 권한을 사용하는 새 라이선스 프로필을 추가해 보겠습니다. 이 프로필을 사용하여 파일을 암호화할 수 있습니다.
강조해야 할 점은 '시스템의 productID' 값이 자체 데이터베이스의 강좌 ID와 동일해야 한다는 것입니다. 일반적으로 학생의 과목 선택 기록은 "mdl_role_locationments" 테이블에 저장됩니다. 여기서 '강좌 예시'의 강좌 ID는 56이므로 '시스템의 productID'를 60으로 변경해야 합니다. 또한 사용자 ID가 6인 사용자 계정에는 강좌를 학습할 수 있는 권한이 있음을 알 수 있습니다.
긴 데이터베이스에서 매개변수를 찾는 것이 너무 번거롭다고 생각되면 무들 계정에서 이 매개변수를 직접 찾을 수도 있습니다. 강좌의 '참가자' 열에서 설정을 클릭하세요. 권한 위로 마우스를 이동하세요. 화면 왼쪽 하단에서 URL을 찾을 수 있습니다. 마지막 숫자는 우리가 찾고 있는 강좌의 제품 ID입니다.
그런 다음 프로필을 사용하여 파일을 암호화할 수 있습니다.
'파일 보호'를 클릭하고 위에서 추가한 권한과 라이선스 프로필을 선택합니다.
암호화하려는 파일을 선택하고 '시작'을 클릭하세요.
자, 이제 비디오 파일을 암호화했습니다. 다른 오디오나 PDF 파일도 모두 이와 같이 암호화할 수 있습니다.
암호화의 자세한 과정은 다음 튜토리얼을 참조할 수 있습니다:
비디오 암호화:https://www.drm-x.com/DRM-X4.0_encryption_tutorial.aspx
웹페이지 암호화:https://www.drm-x.com/DRM_web_page_html_encryption_tutorial.aspx
PDF 암호화:https://www.drm-x.com/How_To_Encrypt_PDF.aspx
이제 DRM-X 4.0을 무들 웹사이트와 통합해야 합니다. 통합 후 귀하의 강좌를 선택한 학생들은 귀하의 무들 웹사이트에 로그인하기만 하면 강좌의 암호화된 콘텐츠를 볼 수 있습니다. 통합의 구체적인 작동을 보여드리겠습니다.
샘플 코드에 따르면 'index.php', 'reindex.php', 'login.php', 'licstore.php'라는 이름의 4개 페이지를 복사해야 합니다. 사용자가 암호화된 파일을 열면 자동으로 'index.php'로 이동하여 자신의 무들 계정에 로그인했는지 확인합니다. 그렇지 않은 경우 'reindex.php'로 이동하여 계정에 로그인하세요. 그렇지 않은 경우 'login.php'로 직접 이동하여 사용자의 비밀번호가 올바른지, 사용자가 해당 강좌를 배울 수 있는 권한이 있는지 등을 확인하세요. 이 페이지에서 인증 코드를 자유롭게 추가하고 수정할 수 있습니다. 그 후 사용자가 확인을 통과하면 'licstore.php'로 이동하여 라이센스를 획득하고 암호화된 파일을 엽니다.
'index.php'에서 profileid, clientinfo, rightid, yourproductid, platform, contenttype, version, return_url을 포함하여 암호화된 파일의 해당 정보를 가져옵니다. 나중에 호출할 수 있도록 이러한 매개변수를 전역 변수 $USER에 저장합니다. 그런 다음 사용자가 자신의 무들 계정에 로그인했는지 확인합니다.
require_once("../config.php");
$USER->ProfileID = $_REQUEST["profileid"];
$USER->ClientInfo = $_REQUEST["clientinfo"];
$USER->Platform = $_REQUEST["platform"];
$USER->ContentType = $_REQUEST["contenttype"];
$USER->ProductID = $_REQUEST["yourproductid"];
$USER->RightsID = $_REQUEST["rightsid"];
$USER->Version = $_REQUEST["version"];
$USER->Return_URL = $_REQUEST["return_url"];
if (isloggedin() or isguestuser()){
echo "<SCRIPT language=JavaScript>location='login.php';</SCRIPT>";
}else{
echo "<SCRIPT language=JavaScript>location='reindex.php';</SCRIPT>";
}
학생이 무들에 로그인하지 않은 경우 'reindex.php'로 이동합니다. (무들에 로그인하지 않고도 암호화된 파일을 볼 수 있는 라이센스를 얻을 수 있는 무들의 초기 로그인 페이지가 아닙니다.) 그렇지 않으면 특정 확인을 위해 login.php로 이동하세요.
사용자가 무들에 로그인하지 않은 경우 비밀번호를 확인해야 합니다. 사용자가 이미 무들에 로그인한 경우에는 비밀번호를 확인할 필요가 없습니다.
if($_GET['un'] == 'login'){
$username = $_REQUEST["username"];
$pwd = $_REQUEST["password"];
/****** verify the password *******/
$result = mysqli_query($dbcon,"SELECT ID,password,email FROM mdl_user WHERE username ='" .$username. "'");
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
$email = $row['email'];
$t_hasher = new \PasswordHash(8, FALSE);
$newpwd= $t_hasher->CheckPassword($pwd, $row['password']);
if ($newpwd != true ) {
$info = "Your Account or Password is incorrect! <br><br>Please revisit the course!";
} else{
$ username = $username;
$_SESSION['pwd'] = $pwd;
$ userid = $row['ID'];
$ userEmail = $email;
}
/***/
// If the user has already logged into moodle, there is no need to verify the password.
}else{
$username = $USER->username;
$userEmail = $USER->email;
$userid = $USER->id;
}
그런 다음 사용자에게 강좌를 학습할 수 있는 권한이 있는지 확인하세요. 검증에 성공하면 사용자 정보를 DRM-X 4.0 계정에 저장한 후 라이선스를 취득하고 다음 페이지로 이동하여 암호화된 파일을 엽니다. 아래의 빨간색 코드는 DRM-X 4.0 계정, 설정한 웹 서비스 인증 문자열(아래 설명 참조) 및 그룹 ID로 변경되어야 합니다.
// Query the order based on the user ID
$id_query = mysqli_query($dbcon,"SELECT id FROM mdl_user WHERE username='" .$username. "'");
$id_row = mysqli_fetch_array($id_query, MYSQLI_ASSOC);
$id_result = $id_row['id'];
$courseid_query = mysqli_query($dbcon,"SELECT contextid FROM mdl_role_assignments WHERE userid='" .$id_result. "'");
while($courseid_row = mysqli_fetch_array($courseid_query, MYSQLI_ASSOC)){
$courseid_result = $courseid_row['contextid'];
if ($courseid_result == $USER->ProductID){
/******* Check whether the user exists on the DRM-X platform********/
$wsdl="http://4.drm-x.com/haihaisoftlicenseservice.asmx?wsdl";
$CheckUser_param = array(
'UserName' => $username,
'AdminEmail' => 'yourEmail@163.com', //your DRM-X 4.0 account
'WebServiceAuthStr' => 'aaaaaa', // the Web Service Authentication String you set in DRM-X 4.0 background
);
$client = new nusoap_client($wsdl, 'wsdl');
$client->soap_defencoding = 'UTF-8';
$client->decode_utf8 = false;
$CheckUser = $client->call('CheckUserExists', array('parameters' => $CheckUser_param), '', '', true, true);
$CheckUser_result = $CheckUser['CheckUserExistsResult'];
/*** End detecting whether the user exists **/
// If the username is not exists, call 'AddNewUser' to add user.
if($CheckUser_result == "False"){
$add_user_param = array(
'AdminEmail' => 'yourEmail@163.com',// your DRM-X 4.0 account
'WebServiceAuthStr' => 'aaaaaa',// the Web Service Authentication String you set in DRM-X 4.0 background
'GroupID' => '11726',//GroupID
'UserLoginName' => $username,// Username or ID
'UserPassword' => 'N/A',
'UserEmail' => $userEmail,
'UserFullName' => 'N/A',
'Title' => 'N/A',
'Company' => 'N/A',
'Address' => 'N/A',
'City' => 'N/A',
'Province' => 'N/A',
'ZipCode' => 'N/A',
'Phone' => 'N/A',
'CompanyURL' => 'N/A',
'SecurityQuestion' => 'N/A',
'SecurityAnswer' => 'N/A',
'IP' => getIP(),//
'Money' => '0',//
'BindNumber' => '2',//
'IsApproved' => 'yes',//
'IsLockedOut' => 'no',//
);
$add_user = $client->call('AddNewUser', array('parameters' => $add_user_param), '', '', true, true);
$result = $add_user['AddNewUserResult'];
}
/*** Successfully added new users ***/
/***** obtain a license after the license authority is updated ****/
$param = array(
'AdminEmail' => 'yourEmail@163.com',// your DRM-X 4.0 account
'WebServiceAuthStr' => 'aaaaaa',// the Web Service Authentication String you set in DRM-X 4.0 background
'ProfileID' => $USER->ProfileID,
'ClientInfo' => $USER->ClientInfo,
'RightsID' => $USER->RightsID,
'UserLoginName' => $username,
'UserFullName' => 'N/A',
'GroupID' => 11726,//GroupID
'Message' => 'N/A',
'IP' => getIP(),
'Platform' => $USER->Platform,
'ContentType' => $USER->ContentType,
'Version' => $USER->Version,
);
$client = new nusoap_client($wsdl, 'wsdl');
$client->soap_defencoding = 'UTF-8';
$client->decode_utf8 = false;
/***** Obtain a license by calling the getLicenseRemoteToTableWithVersion method ******/
$result = $client->call('getLicenseRemoteToTableWithVersion', array('parameters' => $param), '', '', true, true);
$license = $result['getLicenseRemoteToTableWithVersionResult'];
$message = $result['Message'];
if(stripos($license, '<div id="License_table_DRM-x4" style="display:none;">' ) === false )
echo "<SCRIPT language=JavaScript>location='LicError.php?error=".$license."&message=".$message."';</SCRIPT>";
/***** After obtaining the license, store the license and message into $USER, then jump to the licstore page. ******/
$USER->license = $license;
$USER->message = $message;
echo "<SCRIPT language=JavaScript>location='licstore.php';</SCRIPT>";
$flag = 1;
$info = "Getting license...";
exit;
}
}
다음은 가장 간단한 검증 예시입니다. 강좌 구매, 수수료 결제 등 무들에 추가 기능 플러그인이 설치되어 있는 경우 학생이 주문을 제출했는지, 결제가 완료되었는지 여부에 대한 확인도 코드에 포함해야 합니다.
DRM-X 플랫폼의 계정 설정 옵션을 다시 입력하고 '웹사이트 통합 환경설정'을 클릭한 후 '사용자 정의 로그인 페이지 통합'을 클릭하세요. '웹 서비스 인증 문자열'과 '라이센스 URL'을 입력합니다. 사용자가 암호화된 파일을 열면 확인을 위해 무들 통합 페이지로 이동합니다.
이제 DRM-X와 무들 웹사이트의 통합이 기본적으로 완료되었습니다. 그런 다음 암호화된 파일을 학생들에게 보내기만 하면 Xvast 브라우저에서 해당 파일을 열 수 있습니다. 하지만 귀하의 강좌에 접근할 수 없는 사람은 파일을 획득하더라도 암호화된 파일을 볼 수 없습니다.
또한 암호화된 파일을 무들 페이지에 직접 삽입하여 학생들이 웹사이트에서 직접 강좌를 찾아보고 배울 수 있습니다.
방금 생성한 '강좌 예시'의 주제 1에 활동이나 리소스를 추가하고 해당 페이지를 선택합니다.
아래와 같이 html 열에 Embed 코드를 추가합니다. Embed 코드는 샘플 코드 폴더에 저장되어 있으며, 아래 빨간색 URL을 암호화된 파일의 URL로 수정하면 됩니다.
<div id="Xvast_Video_URL" style="display: none;">https://www.drm-x.com/download/DRMX4/JesusFilm_cn_P.mp4</div>
<script type="text/javascript" src="https://www.xvast.com/dist/js/embedPlayer.js"></script>
<script type="text/javascript" src="https://www.xvast.com/dist/js/video.js"></script>
<script type="text/javascript" src="https://www.xvast.com/dist/wordpress/XvastVideoJSPlayer.js"></script>
웹사이트 설정(대시보드--사이트 관리--플러그인--필터--필터 관리)에서 "URL을 링크 및 이미지로 변환" 설정을 확인하고 비활성화하십시오. 아래 그림과 같이:
통합이 완료된 후 코스를 플레이할 수 있습니다. Xvast 브라우저에서 웹사이트를 열고 학생 계정으로 로그인하세요. 그런 다음 "Course example"을 열면 Xvast가 자동으로 라이센스를 받고 암호화된 콘텐츠를 재생합니다.
코드를 삽입하면 이런 영상이 나옵니다. 영상이 재생되면 워터마크 2개가 움직입니다. 워터마크 내용을 사용자 정의하여 기록되지 않도록 할 수 있습니다. 또한 DRM-X 4.0에는 블랙리스트 기능과 스마트 화면 녹화 방지 기술도 탑재되어 악의적인 녹화나 화면 캡처를 방지할 수 있습니다. 강좌에 참여하는 학생들은 암호화된 영상을 직접 재생할 수 있습니다.
마찬가지로 암호화된 PDF 파일 링크를 코스 페이지에 직접 추가할 수 있습니다. 학생들은 콘텐츠를 읽을 수 있는 라이센스를 얻을 수 있습니다. 워터마크의 내용은 소스를 전송한 사용자의 개인 정보를 공개하므로 워터마크는 암호화된 PDF의 악의적인 화면 캡처를 방지할 수 있습니다.
지금까지 무들을 기반으로 교육용 웹사이트를 구축하는 방법, DRM-X 4.0으로 파일을 암호화하는 방법, DRM-X 4.0을 무들과 통합하는 방법을 소개했습니다. 이 기능을 사용하면 학생들은 암호화된 파일을 쉽게 볼 수 있으며 강사는 강좌 전송 또는 판매와 관련된 불법 복제 문제를 제거할 수도 있습니다.