Menggunakan Pustaka CGICC
Pemrograman CGI dengan C++
install pustaka CGICC
Pustaka CGI yang digunakan dalam artikel ini berasal dari pustaka terbuka GNU.
wget -c https://ftp.gnu.org/gnu/cgicc/cgicc-3.2.19.tar.gz
Buka paket dengan perintah:
tar xzf cgicc-3.2.19.tar.gz
Tahap berikutnya adalah kompilasi. Tahap ini akan membuat pustaka sesuai mesin yang digunakan sesuai arsitektur dan prosessor yang sedang digunakan. Masuk ke direktori paket:
cd cgicc-3.2.19
./configure --prefix=/usr
make
sudo make install
Lokasi berkas header akan diletakaan di: /usr/include/cgicc dan
cek
Buat program CGI sederhana untuk memeriksa apakah proses instalasi sudah berjalan:
#include < iostream >
#include < algorithm >
#include < cgicc/Cgicc.h >
using namespace std;
using namespace cgicc;
//fungsi untuk membersihkan teks dari perintah Sql Injection
std::string bersihkanTeks(const std::string& str)
{
// karakter yang akan dihapus
static const std::string invalidChars = ";:\"'` < >(){}[]*%&!?$\\|";
// salin string input ke string baru
std::string result(str);
// hapus karakter yang tidak valid dari string
result.erase(std::remove_if(result.begin(), result.end(), [&](char c) {
return invalidChars.find(c) != std::string::npos;
}), result.end());
return result;
}
int main() {
Cgicc cgi;
form_iterator getNama = cgi.getElement("nama");
// header berkas JSON
cout < < "Content-Type: application/json\r\n";
cout < < "Cache-Control: no-cache\r\n";
cout < < "\r\n";
if (getNama != cgi.getElements().end() && !getNama->isEmpty()) {
string nama = bersihkanTeks(**getNama);
cout < < "{ \"nama\": \"" < < nama < < "\" }" < < endl;
} else {
cout < < "{ \"status\": \"ERROR\" , \"message\": \"masukkan namamu\" }" < < endl;
}
return 0;
}
Compile kode di atas dengan perintah: g++ index.cpp -o index.cgi -lcgicc
Pindahkan index.cgi ke direktori server web. Jalankan dari peramban dengan perintah:
index.cgi?nama=Pikachu
Aplikasi ini akan menghasilkan data JSON
{ "nama": "Pikachu" }