Newest Posts

Proteksi CSRF dengan PHP

Computer Program Language Text

Apa itu CSRF ?

Dalam serangan Cross Site Request Forgery (CSRF), penyerang mengelabuhi korban untuk memuat informasi sensitif atau melakukan transaksi tanpa sepengetahuan mereka. Hal ini terutama terjadi pada aplikasi web yang buruk kode programnya untuk memicu logika bisnis menggunakan permintaan GET.
Idealnya, permintaan GET  idempoten secara alamiahnya. Idempotency berarti halaman yang sama dapat diakses beberapa kali tanpa menimbulkan efek samping. Oleh karena itu, permintaan GET harus digunakan hanya untuk mengakses informasi dan tidak untuk melakukan transaksi.
Contoh berikut menunjukkan bagaimana aplikasi dibuat menggunakan kode yang buruk sehingga mendukung serangan CSRF:
<?php
if (isset($_REQUEST["name"],$_REQUEST["amount"])) {
 // process the request and transfer the amount from
 // from the logged in user to the passed name.
}
Mari kita asumsikan Bob ingin melakukan serangan CSRF pada Alice, dan membangun sebuah URL seperti berikut dan mengirimkannya ke email Alice :
<a href="http://example.com/process.php?name=Bob&amount=1000">Visit My WebSite</a>
Jika Alice mengeklik link ini, dan sudah login ke website, permintaan ini akan memotong $1.000 dari rekening dan mentransfernya ke Bob! Atau, Bob dapat membuat image link yang mana atribut src  merujuk ke URL.
<img src="http://example.com/process.php?name=Bob&amount=1000"width="1" height="1"/>
Browser tidak dapat menampilkan gambar apapun seperti yang diharapkan, tetapi masih akan membuat permintaan menggunakan URL yang akan melakukan transaksi tanpa memberitahu Alice.
Solusinya adalah untuk memproses fungsi yang mengubah keadaan database dalam permintaan POST, dan hindari menggunakan $_REQUEST. Gunakan $_GET untuk mengambil parameter GET, dan menggunakan $_POST untuk mengambil parameter POST.
Selain itu, harus ada token acak disebut token CSRF terkait dengan setiap permintaan POST. Ketika user login ke akunnya, aplikasi harus menghasilkan token acak dan menyimpannya dalam sesi. Setiap kali form apapun akan ditampilkan kepada pengguna, token harus hadir di halaman sebagai field input tersembunyi. Logika aplikasi harus memeriksa token dan memastikan bahwa itu cocok dengan yang yang ada dalam session saat ini.

Sekarang, mari kita bikin Proteksi CSRF yang mudah.

Buat 3 file php yaitu index.php , config.php dan output.php

Bikin kode config dulu yuk.

<?php


session_start(); 

function createToken()
{
	$token= base64_encode(openssl_random_pseudo_bytes(32));
	$_SESSION['csrfvalue']=$token;
	return $token;	}
function unsetToken()
{
	unset($_SESSION['csrfvalue']);
}
function validation()
{		$csrfvalue = isset($_SESSION['csrfvalue']) ? mysql_real_escape_string($_SESSION['csrfvalue']) : '';		if(isset($_POST['csrf_name']))
	{				$value_input=$_POST['csrf_name'];
				if($value_input==$csrfvalue)
		{
			unsetToken();
			return true;					}else{
			unsetToken();
			return false;
		}
	}else{
		unsetToken();
		return false;
	}
}
?>

Function createToken berfungsi untuk membuat ekripsi teks openssl_random_pseudo_bytes (kriptografi algorithma random value) dengan menggunakan base64. Lalu membuat sebuah session bernama csrfvalue berisikan data teks tadi.

Function validation berfungsi memvalidasi sebuah input $_POST , di sini saya membaca isi $_POST dari input name csrf_name.

Function unsetToken dijalankan saat akhir validation , fungsinya saat halaman menuju output.php maka $_SESSION[‘csrfvalue’] langsung dihapus. Tujuannya memproteksi resubmit pada output.php berkali-kali.

Sekarang kita membuat script pada index.php

<?php
require_once("config.php");
?>
<form action="output.php" method="post">
	<input type="hidden" name="csrf_name" value="<?php echo createToken();?>"/>
	<input type="text" name="nama"/>
	<button type="submit">Kirim</button>
</form>

Pada halaman index.php ini ,includekan config.php tadi. Lalu sebuah form dibuat dengan method POST. untuk membuat CSRF proteksi, cukup buat input hidden dengan name csrf_name dan value nya generate fungsi createToken pada config.php

Sekarang kita buat script output.php


<?php
require_once("config.php");
if(validation()==true)
{
	echo "Berhasil ".$_POST['nama'];
}else{
	echo "Gagal";
}
?>

Untuk memvalidasi data yang telah di post pada halaman index.php. Setelah tampil halaman output.php maka resubmit lagi / tekan F5 atau Reload halaman.

Untuk tes artikel ini langsung, saya sudah sisipkan file nya dengan mengklik tombol Download di bawah ini :

Download

Baca juga kuy :

eCool, Pendingin Minuman Kaleng Bawah Tanah

Jika anda adalah penggemar minuman kaleng dan suka meminumnya dalam keadaan dingin, eCool merupakan alat yang cocok untuk anda beli saat ini. Alat pendingin minuman kaleng ini cukup ramah lingkungan dan dan hemat energi karena memanfaatkan suhu dingin dalam tanah.

Image result for ecool

Alat ini dapat dibawa pada saat anda berkemah atau bertualang dan anda juga dapat menanamnya di sekitar rumah dengan menggunakan sekop dengan menanamnya hingga bagian leher alat ini. eCool memiliki daya tampung sebanyak 24 minuman kaleng.

Alat pendingin praktis minuman kaleng eCool memiliki ukuran tingga 133 cm dan diameter 22-30 cm dan berat 12kg. Anda dapat menggunakan alat ini sepanjang tahun tanpa perlu mengorbankan energi listrik di rumah anda. Anda hanya perlu menanamnya dalam tanah dan tidak perlu menggalinya untuk mengambil minuman kaleng yang telah didinginkan karena alat ini sudah dilengkapi dengan alat khusus yang menggunakan sistem katrol dan akan menarik minuman kaleng dari dalam tanah menuju kepermukaan alat pendingin eCool ini.

Bagian atas pendingin bumi ini terisolasi dengan sangat baik dan mempertahankan suhu dingin minuman kaleng selama berada dalam kontainer penampungan. Jika tiba-tiba anda kedatangan tamu dan berniat menghidangkan minuman dingin, anda tidak perlu repot lagi untuk membeli di toko atau mengambil dari kulkas karena anda telah memiliki persediaan minuman kaleng dingin dalam tanah dan anda bisa mengatakan pada tamu anda bahwa minuma tersebut berasal dari dalam tanah.

Tentu saja ini mengundang tanda tanya dan bisa langsung membuktikannya dengan menunjukkan alat pendingin minuman kaleng anda yang telah anda tanam sebelumnya.

Jika anda bertanya masalah harga, alat ini dijual dengan harga $369 dan anda bisa langsung melakukan order pada situs resmi eCool Untuk mendapatkan alat pendingin minuman kaleng ini.

Baca juga :

Mengukur Tekanan Darah Dan Nadi Dengan Handphone

Hi.lo-Wireless-blood-pressureMengukur Tekanan Darah Dan Nadi Dengan Handphone – Tekanan darah adalah salah satu hal yang harus dianggap serius bagi kesehatan dan tidak boleh dianggap sebagai hal yang biasa, utamanya ketika seseorang sudah menginjakkan umur tiga puluh tahun keatas. Seseorang yang sudah berumur tiga puluh tahun keatas dan mempunyai pola makan yang sembarangan serta jarang melakukan olahraga akan menjadi sasaran dari yang namanya tekanan darah tinggi.

Tekanan darah tinggi atau sering disebut juga hipertensi dalam dunia medis, dan merupakan salah satu penyakit yang bisa berujung stroke dan bahkan kematian. Seseorang yang sering mengalami hipertensi, setidaknya harus mengontrol tekanan darahnya setidaknya 3 kali dalam seminggu. Namun tidak menutup kemungkinan hal itu harus dilakukan setiap saat apabila dalam keadaan yang kritis. Untuk itu dalam menanggulangi keadaan tersebut seseorang hendaknya memliki alat pengukur tekanan darah.

Hi.lo Wireless blood pressure system Mengukur Tekanan Darah Dan Nadi Dengan Handphone

Dalam melakukan pengukuran tekanan darah, seseorang terkadang harus memakai jasa petugas kesehatan entah perawat atau pun dokter. Namun, untuk hal itu terkadang serasa sedikit rumit bagi sebagian orang. Biasanya seseorang penderita hipertensi bagi kalangan yang mampu menggunakan alat pengukur tekanan darah digital, namun untuk akurasi alat tersebut terkadang tidak baik saat baterai dalam keadaan lemah.

Kini telah hadir sebuah teknologi terbaru ditahun ini, sebuah alat pengukur tekanan darah yang dirancang oleh Diana Dumitrescu yang bentuknya menyerupai sebuah gelang yang diberi nama Hi.lo. Pada dasarnya system alat ini menyerupai LifeBeam Helm sebuah helm yang jg dapat mengukur tekanan darah seseorang. Namun untuk ukuran helm sendiri tentulah sangat besar dibandingkan dengan sebuah gelang.

Gelang Hi.lo ini digunakan dengan cara memasangkan ke pergelangan tangan anda kemudian dihubungkan dengan ponsel anda yang mana terlebih dahulu aplikasi Hi.lo tersebut di instal pada ponsel anda dan dihubungkan dengan menggunakan system koneksi wireless. Setelah itu jalankan aplikasinya dan anda akan mendapatkan hasilnya tertera pada ponsel anda. Itulah sekilas bagaimana cara Mengukur Tekanan Darah Dan Nadi Dengan Handphone.

Baca juga :

Download Font Ultimate Midnight

Ultimate Midnight, adalah salah satu grunge font design yang tidak ada salahnya untuk Anda miliki untuk sekedar koleksi ataupun untuk mendukung desain Anda.

Desain grunge banyak sekali digemari di luar negeri, lalu bagaimana dengan dalam negeri? Kita masih jarang melihat desain-desain grunge disini. Nah, Anda bisa mengawalinya dengan desain-desain Anda.

Berikut kami berikan gambar preview Ultimate Midnightnya. Silakan disimak.

ultimate midnight font

Untuk mendapatkan font ini, silakan saja klik disini.

Baca juga :

Apa sih sebenarnya Arti Kata “Puitis”

 Pada tulisan sebelumnya adalah tentang Sosok Pemuda Indonesia tahun 1960-an yang terkenal dengan kepuitisannya, siapa lagi kalau bukan Soe Hok Gie. Ia pandai dalam merangkai kata-kata. Nah tentu ada yang bertanya-tanya, apa sih arti “puitis” itu.
Menurut Kamus Besar Bahasa Indonesia, puitis adalah bersifat puisi: dalam pidatonya, dia banyak menggunakan kata-kata. Puitis erat kaitannya dengan sesorang yang pandai dalam berkata-kata. Menurut Prof. Atmazaki (ahli sastra Indonesia), puitis adalah sesuatu hal yang identik dengan keindahan, yang merupakan sifat yang melekat pada sajak dengan kadar tertentu sesuai dengan kemampuan penyairnyaJadi, lebih jelasnya puitis adalah sesuatu hal yang bersifat puisi ataupun kata-kata yang diucapkan/dituliskan menggunakan irama, matra, dan rima tertentu agar terdengar indah, biasanya diucapkan dengan tekanan suara tertentu dan terkadang menggunakan bahasa kiasan. Puitis akan melekat pada manusia yang sering berbicara/menyampaikan pendapatnya seperti seorang motivator, orator, dan pemimpin. Puitis sangat diperlukan oleh manusia, terkhususnya bagi mereka yang tak pernah lepas dengan khalayak luas.
Nah mengapa kita perlu puitis….????
Dengan puitis, kita dapat menarik minat pendengar dan menekankan maksud dari pembicaraan kita. Puitis juga terkadang digunakan untuk pada kata-kata saat melakukan rayuan yang romantis, seperti yang sering dilakukan sepasang kekasih. Namun kata-kata puitis sebenarnya lebih merujuk pada kata yang telah disusun sesuai dengan kaidah pada puisi, ada pemilihan kata, penentiuan rima dan irama serta dengan penekanan tertentu pada pembicaraan yang dimaksud. 
Jadi, dapat disimpulkan bahwa puitis erat kaitannya dengan kata/gaya yang berhubungan dengan puisi yang didalamnya terdapat nilai estetika dan makna yang akan dicapai. 
Semoga bermanfaat tulisan si kepo ini hehe….
Baca juga :

8 Game Open Source untuk Windows

Untuk urusan permainan, pengguna Windows bisa jadi adalah pihak yang paling berbahagia. Dengan segala kompatibilitas software game yang ada sekarang hampir semuanya mengikuti jejak alur perkembangan OS yang satu ini.

person's left palm about to catch black dice

Tapi mungkin tak pernah terpikirkan sebelumnya, bahwa semua game yang kita mainkan di PC umumnya closed source yang berujung pada keharusan untuk membajak karena harga yang selangit.

Jadi, apakah ini berarti pengguna Windows tidak bisa menikmati game di komputer mereka tanpa membajak? Jelas tidak! Selain banyaknya games yang bersifat freeware, terdapat juga game yag berlisensi open source bagi pengguna Windows.

8 Game Gratis untuk Windows

Berikut 8 Game Open Source untuk Windows :

Cube 2: Sauerbraten

Sauerbrate merupakan jenis permainan FPS (First Person Shooter) yang menggunakan Cube FPS gaming engine. Menggunakan lisensi ZLIB, Sauerbratenis juga tersedia untuk Mac OS dan Linux.

PlaneShift

Datang denga menggunakan lisensi GPL, PlaneShift adalah permainan dunia fantasi dalam bentuk 3D virtual. Selain Windows, platform yang didukung lainnya adalah Linux, Mac OS, FreeBSD dan Solaris. Ada beberapa jenis dunia yang dapat dimainkan, dan Anda dapat mulai karakter Anda sendiri dari awal. Sama dengan Game Online pada umumnya, setiap perkembangan karakter secara otomatis disinkronisasikan dengan server PlaneShift, sehingga pemain dapat menilai kemampuannya dengan pemain lain di seluruh dunia.

Hedgewars

Meski tergolong Strategy Games, permainan ini terlihat lucu dan menggemaskan. Berbagai macam features seperti, 22 environment yang berbeda, 47 senjata lucu dan 18 pilihan untuk mengubah permainan. Bahkan ketika tentara kita mati, kita bisa memilih jenis kuburan untuk makam mereka. Mempunyai lisensi di bawah GPL v2, dan juga tersedia untuk Linux dan BSD.

0 A.D.

0 A.D. adalah sebuah game open source yang dikembangkan oleh Wildfire Games. Memiliki latar belakang yang bercerita tentang sejarah Eropa kuno dan awal abad pertengahan, serta peradaban Romawi dan Persia antara tahun 500 SM dan 500 Masehi. Permainan yang menyerupai Age of Empires ini berlisensi di bawah GPL dan tersedia untuk Linux dan Mac.

FlightGear

FlightGear merupakan game simulasi penerbangan open source yang berlisensi GPL dan multi platform. Selain game, FlightGear juga bermaksud untuk menyediakan mekanisme simulasi tingkat pemula untuk penggunaan akademis, pelatihan pilot, penelitian, dan sebagainya. Proyek, saat ini di versi 2.6 (dirilis pada bulan Februari 2012), didukung oleh banyak kontributor dan sukarelawan di seluruh dunia.

Warzone 2100

Warzone 2100 adalah Strategy Game. Permainan ini juga tersedia untuk Linux dan Mac, dan Anda dapat men-download peta tambahan dan add-ons untuk memperluas pengalaman bermain. Tersedia active forum untuk diskusi penggemar dan pengguna.

Battle for Wesnoth

Permainan yang ber-tema-kan fantasi ini tersedia dalam single mode dan multi-player Selama permainan, pemain diharuskan membangun tentara sendiri, Memiliki karakter supranatural seperti Orc, Battle for Wesnoth juga disertai dengan rincian dunia game-nya yang luas. Mendukung platform Linux, BSD, Solaris, Mac OS, AmigaOS4 dan banyak platform lainnya. Game yang berlisensi GPL ini telah diterjemahkan ke dalam 35 bahasa.

Frogatto and Friends

Dalam permainan ini, pemain harus membantu seekor katak bernama Frogatto menyelesaikan perjalanannya dengan menghindari rintangan. Game ini mirip seperti Super Mario, Anda harus melawan monster, mengumpulkan koin. Tersedia secara gratis untuk Linux dan Mac OS, dan sebagai versi berbayar untuk pada iPhone.

Baca juga :

7 Game Offline Android Terbaik, Ngegame Tanpa Takut Kuota Kandas!

7 Game Offline Android Terbaik 2020 – Smartphone android saat ini tidak hanya digunakan untuk berkomunikasi saja. Melainkan smartphone android juga digunakan untuk main game. Selain game online, game offline android terbaik juga saat ini banyak dicari para gamers.

Hasil gambar untuk zombie catchers android

Game offline terbaik untuk android memang dapat menjadi jawaban ngegame tanpa harus memiliki kuota. Jadi Anda yang suka main game namun sedang tidak memiliki kuota, Anda bisa menggunakannya.

Hanya saja ketika main game, Anda harus pastikan baterai Anda mumpuni agar tidak mengalami gangguan selama permainan sedang berlangsung. Berikut daftar game offline yang sangat direkomendasikan untuk Anda mainkan ketika hemat kuota atau kuota sedang kandas!

7 Game Offline Android Terbaik yang Harus Dimainkan

#1 – Game Zombie Catchers

Jika Anda penggemar game – game zombie, Anda bisa download game Zombie Catchers. Game yang satu ini selain bisa membuat Anda mampu menangkap zombie, Anda juga bisa membangun suatu kerajaan bisnis yang akan super seru. Terlebih game ini sisi grafisnya sudah HD dan yang paling penting memiliki memori yang dibutuhkan juga oleh si kecil.

#2 – Game N.O.V.A Legacy

Selanjutnya terdapat game offline yang juga direkomendasikan khususnya bagi Anda yang suka dengan game – game bergrafik keren. Game offline android grafik terbaik yang bernama N.O.V.A Legacy ini akan membuat Anda ketagihan main tembak – tembakan.

#3 – Game Bounce Original

Game yang satu ini bukan hanya game untuk pria, melainkan juga merupakan game offline android terbaik untuk perempuan. Sampai saat ini walau game ini termasuk game jadul namun banyak orang yang menjadi peminatnya.

Jika zaman dulu game ini dimainkan di HP non android, bahkan HP jadul nokia baik yang berkamera atau tidak berkamera, sekarang Anda sudah bisa mainkan di ponsel android. Jadi, pecinta bounce bisa merasakan sensasi bermain game Bounce Original di android. Anda bisa download saja di Play Store untuk mendapatkannya. Gratis lho!

#4 – Game Temple Run 2

Selanjutnya ada game yang bernama Temple Run 2. Game Temple Run 2 merupakan game klasik yang Anda bisa langsung unduh di Play Store. Sama halnya dengan game Bounce Original, konsep dari game ini sangat simple namun bukan berarti gampang atau mudah untuk ditakhlukkan.

#5 – Game Asphalt 8 : Airborne

Jika Anda suka kebut – kebutan, Anda pasti tidak asing lagi dengan game Asphalt 8 : Airborne. Game yang satu ini merupakan game offline yang hadir dengan sisi grafis sangat mumpuni bahkan mendapatkan predikat sebagai game balapan android terbaik versi androdot.net.

#6 – Game Badland

Jika Anda termasuk orang yang memperhatikan visual grafik ketika main game, game Badland sangat memuaskan dan sangat layak untuk Anda download. Game Badland sendiri bisa dimainkan sendiri atau multiplayer. Anda bahkan bisa bermain secara online atau offline melalui game ini.

#7 – Game Eternium

Game Eternium merupakan suatu game offline yang patut untuk diperhitungkan. Game ini hadir dengan jalan cerita yang cukup menarik. Anda bahkan akan dibuat penasaran dengan jalan ceritanya. Sebagai suatu game RPG Eternium, Eternium sangat seru diikuti terlebih hadir dengan dukungan backsound yang super kece dan keren.

Baca juga : build granger

Anda yang ingin main game tanpa perlu takut kuota kandas, Anda bisa main game offline android terbaik diatas. Rasakan sensasi berpetualang sekaligus ngegame yang super seru tanpa takut kehabisan kuota.