Secure Programming : Bab 1

Bab 1: Web App & Programming Basics


  1. HTTP and HTTPS
  2. Cookies
  3. Sessions
  4. Web Server
  5. SSL
  6. OOP : Objects and Classes
  7. Databases

1.1 : HTTP and HTTPS


1.2 : Cookies


1.3 : Sessions


<?php
session_start(); # mulakan sesi

$_SESSION[$key] = 'auam';

if (isset($_SESSION[$key]))
	return $_SESSION[$key];

session_unset();
session_destroy();
?>

1.4 : Web Server


1.5 : SSL


1.6 : OOP : Objects and Classes


Latihan 1.1 : Halaman menggunakan kod PHP
<?php
?>
Latihan 1.2 : Contoh namafail.php
<?php
	echo 'Aku tanya apa khabar';
?>

BAB 1.7.1 : Database mySQL

Sejarah mySQL


  • Pada awalnya, para pencipta mySQL mencuba satu pangkalan data iaitu mSQL (mini Structure Query Language)
  • Tujuannya menghubungkan table-table dengan menggunakan fast-low level (ISAM) routine mereka sendiri.
  • Setelah beberapa ujian dilakukan, mereka berpendapat bahawa mSQL tidak begitu cepat dan tidak begitu fleksibel.
  • Lalu dicipta satu interface SQL baru yang sesuai dengan masalah mereka dengan cara menambahkan atau mengubah mSQL dan mereka namakan mySQL.
  • Adapun alasan mereka menambahkan kata 'my' pada mySQL sebenarnya masih sebuah misteri bagi mereka sendiri
  • Tapi hampir semua libraries dan tools pada direktori mereka menggunakan awalan 'my'.

Apa Itu mySQL


  • mySQL adalah satu aplikasi untuk pengurusan (menambah, mengakses dan memproses) data.
  • pangkalan data pula adalah satu kumpulan data yang terstruktur.
  • mySQL adalah sumber terbuka.
  • Ini bermakna ia boleh digunakan serta diubahsuai oleh sesiapa sahaja.

Apa Itu Pengurusan mySQL


  • phpMyadmin pula adalah satu aplikasi GUI (Graphic User Interface) bagi memudahkan pengguna menguruskan data-data mySQL.
  • Namun adminer/phpminiadmin adalah pilihan lain GUI yang ringkas

Apakah Kelebihan mySQL


  1. MySQL merupakan pangkalan data yang sangat cepat dan mudah untuk digunakan.
  2. Selain itu, sintaks-sintaksnya juga adalah mudah untuk difahami dan tidak rumit
  3. Boleh digunakan pada platform yang lain seperti LINUX, Windows, MacOS dll
  4. Beberapa table dari pelayan server yang berlainan dapat digunakan dalam query yang sama

PDO - PHP Data Objects


  • Sambungan PDO - antara muka ringan untuk akses pangkalan data
  • Menyediakan lapisan capaian data abstraksi - fungsi yang sama untuk melakukan pertanyaan dan mengambil data
  • Boleh mencapai sebarang pangkalan data yang sedia ada

Mysqli


  • Sambungan Mysqli - pengganti Mysql yang lama
  • Menyediakan lapisan capaian data abstraksi - fungsi yang sama untuk melakukan pertanyaan dan mengambil data

Bab 1.7.2
MANIPULASI PANGKALAN DATA

Mencipta Akaun Pengguna


Di dalam sesuatu pangkalan data, adalah digalakkan agar para webmaster menetapkan akaun pengguna baru bagi pangkalan data atau menetapkan katalaluan bagi mengakses pangkalan data tersebut.
Latihan 33 : Menetapkan username dan password
<?php
?>

Mencipta pangkalan Data


  • Arahan CREATE digunakan untuk mencipta pangkalan data serta table-table dalam sesuatu pangkalan data.
  • Di dalam UNIX, nama-nama pangkalan data adalah case-sensitive.
  • Format : CREATE DATABASE databasename
  • Format : CREATE TABLE table (id INT)
Latihan 35 : Mencipta pangkalan data
<?php
?>
Latihan 36 : Mencipta table
<?php
?>

Menghapuskan pangkalan Data


  • Arahan DROP akan digunakan untuk menghapuskan pangkalan data atau table atau index atau function.
  • Arahan ini juga boleh digunakan untuk menghapuskan lebih daripada satu table dalam sesuatu arahan.
  • Format : DROP databasename
  • Format : DROP TABLE table1, table2
Latihan 37 : Menghapuskan pangkalan data
<?php
?>

Menambah Data


  • Arahan INSERT digunakan untuk menambah baris (row) data ke dalam pangkalan data yang telah dibina.
  • Format : INSERT INTO table (field1, field2) VALUES(15,20)
  • Format : INSERT INTO table (field1, field2) VALUES(15, field1*2)
Latihan 38 : Menambah baris data
<?php
?>

Memilih Data


  • Arahan SELECT akan digunakan bagi memilih baris data.
  • Sekiranya arahan WHERE dinyatakan, maka baris data berkenaan sahaja akan dipilih.
  • Sekiranya tiada, seluruh baris data di dalam table berkenaan akan dipilih.
  • Format : SELECT * FROM table ORDER BY field1
  • Format : SELECT field1 FROM table WHERE jawatan='SA'
  • Format : SELECT t1.*, t2.* FROM table1 AS t1, table2 AS t2 WHERE t1.field= t2.field
Latihan 39 : Menghapuskan baris data
<?php
?>

Mengemaskini Data


  • Arahan UPDATE berfungsi untuk mengemaskini nilai sesuatu baris data yang telah sedia ada dalam sesuatu table.
  • Sekiranya arahan WHERE dinyatakan, maka hanya nilai bagi data berkenaan sahaja akan dikemaskini.
  • Sekiranya tiada, seluruh baris data di dalam table berkenaan akan dikemaskini.
  • Format : UPDATE table SET field1='Makan'
  • Format : UPDATE table SET field1='Minum' WHERE id='17'
Latihan 40 : Mengemaskini baris data
<?php
?>

Menghapuskan Data


  • Arahan DELETE akan digunakan bagi menghapuskan baris data.
  • Sekiranya arahan WHERE dinyatakan, maka baris data berkenaan sahaja akan dihapuskan.
  • Sekiranya tiada, seluruh baris data di dalam table berkenaan akan dihapuskan.
  • Format : DELETE FROM table LIMIT 10
  • Format : DELETE FROM table WHERE id='17'
Latihan 41 : Menghapuskan baris data
<?php
?>

Secure Programming : Bab 2

Module 2 : Principles of Secure Development


  • Input Validation
  • Output Validation
  • Error Handling
  • Authentication and Authorization
  • Session Management
  • Secure Communications
  • Secure Storage
  • Secure Resource Access

Secure Programming : Bab 3

Module 3 : OWASP & SANS
Top Application Vulnerabilities


<?php
Attacks with Hands-on Labs on SQL Injection, 
Cross Site Scripting, Cross Site Request Forgery, 
LDAP Injection, Command Injection, 
Parameter/Form Tampering, Improper Error Handling, 
unvalidated Input, Directory Traversal, 
Cookie Poisoning, Insecure storage, 
Information Leakage, Broken Account Management, 
Denial of Service, Buffer Overflow, Log Tampering, 
Broken Access Control, Broken Session Management, 
Session Fixation, Security Misconfiguration
?>

Secure Programming : Bab 4

Module 4: Vulnerability Symptoms & Investigations


<?php
Symptoms of Attacks and Investigating SQL Injection, 
Cross-Site Scripting (XSS), 
Command Injection Attacks, File Upload Attack, 
Log Tampering, Directory Traversal, 
Parameter/Form Tampering and many more from 
Server Logs, Firewalls and IPS / IDS
?>

Secure Programming : Bab 5

Module 5 : Defending Vulnerabilities


Steps & Methodologies to defend from web application vulnerabilities and attacks for the Top OWASP Vulnerabilities with detailed checklist
<?php
?>
<?php
?>

Secure Programming : Bab 6

Module 6: Vulnerability Assessment & Penetration Testing tools


<?php
Passive and Active Information Gathering, Passive Recon Firefox Addon, Information 
intelligence with Maltego, Information intelligence with FOCA, Firefox Add-ons, W3af, Samurai, 
SQLMap, Paros, Backtrack 5 R2, Acunetix Web Scanner and many more tools with Hands-on Labs
?>

SUDAH HABIS DAA


  • : www.amin007.org
  • : al.amin007@yahoo.com
  • : amin007.ledang
  • : amin007_ledang
  • : abdulmuhaiminabdulghaniamin007ledang
  • :
  • : amin007
  • : aminledang
  • : amin800507
  • : user/abdmuhaimin