Template là do công sức bạn code ra, thời gian không chỉ đơn giản là một hai ngày mà trong suốt quá trình sử dụng bạn đã code chỉnh sửa. Sau khi bạn chia sẻ lại template, bạn muốn giữ lại bản quyền của bạn để người khác sử dụng ghi nhận công sức của bạn, lúc này bạn cần code thêm một chút javascript để bảo vệ bản quyền template do bạn tạo ra.
Theo tình hình chung hiện nay rất khó để bảo vệ bản quyền template bằng javascript cho dù bạn đã mã hóa code, rất nhiều trang giải mã, rất nhiều cao thủ có thể gỡ bỏ nó vô cùng đơn giản. Đánh lạc hướng, chia code thành nhiều đoạn...là những cách đơn giản để tăng độ phức tạp với người giải mã.
Bài hôm nay mình chia sẻ đoạn code javascript đơn giản bảo vệ bản quyền tên tác giả trong <b:skin> và chân trang không cho xóa hay chỉnh sửa. Các bước thực hiện như sau:
1. Thêm mã vào trong <b:skin>
Ví dụ bạn sẽ thêm như sau:
<b:skin><![CDATA[
/*
* Name: Việt Designer - Thiết kế theme blogspot giá rẻ
* Version: 1.3.0
* Last Updated: July 25, 2019
* Author Name: Việt Blogger
* Author URI: fb.com/kequaduongvodanh
* Website: https://www.vietblogger.design
*/
]]></b:skin>
2. Thêm id dưới chân trang
Ví dụ bạn sẽ thêm như sau:
<div id="footer">
Template được tạo bởi <a href="https://www.vietblogger.design" id="vietdesign" title="">Việt Blogger</a>
</div>
3. Viết code javascript
<script id='credit'>//<![CDATA[
window.onload = function() {
var config = {
authorName: 'Việt Blogger',
authorURI: 'fb.com/kequaduongvodanh',
website: 'https://www.vietblogger.design',
id: '#vietdesign'
}
var element = document.getElementById('page-skin-1'),
style = element.innerHTML,
name = style.indexOf(config.authorName),
uri = style.indexOf(config.authorURI),
web = style.indexOf(config.website),
namestring = Number(name) + config.authorName.length,
uristring = Number(uri) + config.authorURI.length,
webstring = Number(web) + config.website.length,
authorname = style.slice(name, namestring),
authoruri = style.slice(uri, uristring),
website = style.slice(web, webstring),
footer = document.getElementById('footer'),
credit = footer.querySelector(config.id),
computedStyle = getComputedStyle(credit),
parentComputedStyle = getComputedStyle(credit.parentElement);
function redirect() {
window.location.assign(config.website);
}
setTimeout(function(){
if (authorname !== config.authorName ||
authoruri !== config.authorURI ||
website !== config.website) {
redirect();
} else if (!footer) {
redirect();
} else if (credit.tagName.toLowerCase() !== 'a') {
redirect();
} else if (!credit.href.match(config.website) ||
!credit.innerHTML.match(config.authorName)) {
redirect();
} else if (computedStyle.display === 'none' ||
computedStyle.opacity === '0' ||
computedStyle.visibility === 'hidden' ||
parentComputedStyle.display === 'none' ||
parentComputedStyle.opacity === '0' ||
parentComputedStyle.visibility === 'hidden') {
redirect();
} else {
console.log('Author Name: ' + authorname);
console.log('Author URI: ' + authoruri);
console.log('Website: ' + website);
}
}, 5000);
};
//]]></script>
Bạn cần sửa lại thông tin các mục mình đánh dấu nhớ phải sửa giống nhau nhé.
4. Mã hóa code javascript
Các bạn tìm các trang mã hóa càng khó càng tốt đễ mã hóa code script trên.
5. Giấu code javscript trong widget Blog
Giấu code javscript trong widget Blog là cách rất hiệu quả vì người khác không thể xóa được widget Blog vì template cần tối thiểu một widget Blog để hiển thị dữ liệu post. Trong widget Blog bạn đặt code javascript trong thẻ <b:includable> nào mà đảm bảo thẻ đó phải hiển thị tất cả ở các trang trừ trang báo lỗi.
6. Viết thêm một đoạn script nhỏ nếu code javascript trên bị xóa
Giả sử bạn sẽ viết một đoạn script đơn giản và đặt đoạn script này dưới chân trang cùng với các script khác như sau:
setTimeout(function(){
if (!document.getElementById('credit')) {window.location.assign('https://www.vietblogger.design')}
}, 4000);
7. Kết luận:
Nếu bạn muốn tăng tính phức tạp bạn cứ code lòng vòng chia script thành nhiểu đoạn nhỏ. Trên đây là những gợi ý cho bạn biết làm thế nào để bảo vệ tác quyền. Hẹn gặp lại ở những bài viết sau.
hay đấy. càm ơn bạn đã chia sẻ
Trả lờiXóa