Senin, 27 Mei 2019

Cont*kan | SIBIM*

Background

Akhir akhir ini kami mengikuti pelatihan sertifikasi kualifikasi pengalaman. Pelatihan ini menggunakan sistem jarak jauh atau biasa disebut Distance learning. Pelatihan ini dilakukan oleh pemerintah yang mengharuskan setiap individu yang mengikuti pelatihhan ini untuk melakukan registrasi dan ujian di akhir masa pelatihannya.

Damn...
Ingin ku meriview seluruh kelemahan sistem ini. mulai dari soal ujian yang dapat diulas, hingga variasi soal yang kurang dinamis. Dengan mengerjakan bersama dua atau tiga orang, semua soal didalam database server dapat diketahui. Sehingga besar kemungkinan peserta dapat lulus dengan nilai dan waktu yang tidak masuk akal.

Pembahasan


Tak sampai hati, muncul niat jahat untuk melakukan sedikit keusilan. jika bisa kami dapatkan record soal dan jawaban yang benar dari ulasan soal. Kedepannya dapat kami petakan semua soal dan membuat contekan kecil untuk peserta berikutnya.

diam diam kami tulis sebuah skrip kecil untuk scraping semua soal melalui penelusuran sampel ulasan dan  membuat server kecil kecilan untuk memeriksa semua jawaban.

berikut adalah scrip untuk scraping pada ulasan:

var form = $(".formulation"),
	base = "https://script.google.com/macros/s/AKfycbyqyttZLmZDikFunTSaKDEJ9Axn_IdI26ZJWD6AZW6IjuREvHZO/exec",
	colect = [];
for(var x=0; x<form.length; x++){
	try{
        var pert = $(".qtext")[x].getElementsByTagName("p")[0].innerText;
    } catch(err){
        var pert = $(".qtext")[x].innerText;
    }
	try{
		var corr = form[x].getElementsByClassName("correct")[0].innerText.slice(3);
		var state = true;
	}catch(err){
		var corr = null;
		var state = false;
	}
	var node = {
		t : state,
		q : pert,
		a : corr
	};
	colect.push(node);
}
$.get(base,{m:"ulas",arr:JSON.stringify(colect)},function(a){console.log(a)});

berikut adalah script melakukan pengecekan jawaban:


var form = $(".formulation"),
	base = "https://script.google.com/macros/s/AKfycbyqyttZLmZDikFunTSaKDEJ9Axn_IdI26ZJWD6AZW6IjuREvHZO/exec",
	colect = [];
for(var x=0; x<form.length; x++){
	try{
        var pert = $(".qtext")[x].getElementsByTagName("p")[0].innerText;
    } catch(err){
        var pert = $(".qtext")[x].innerText;
    }
	var node = {
		q : pert
	};
	colect.push(node);
}
//$.get(base,{m:"tanya",arr:JSON.stringify(colect)},function(a){console.log(a)});
var ad = JSON.stringify(colect);
window.open(base+'?m=tanya&arr='+encodeURI(ad), '_blank')

Kesimpulan

  • skrip diatas bermula dari kelemahan suatu sistem.
  • sistem pelatihan jarak jauh yang dimaksud diatas dapat di ekploitasi melalui skrip diatas.
  • fungsi masing-masing skrip diatas secara berurutan adalah mengambil sampel soal juga jawaban yang benar dari ulasan soal dan crosscheck jawaban dari pertanyaan yang ada.

Sebagai penutup, postingan ini dibuat untuk memberitahukan kelemahan suatu sistem. tidak bermaksud menjatuhkan atau memberi kemudahan pada suatu pihak. Bijaklah dalam menggunakan teknologi.

Salam.