Jump to content
Sign in to follow this  
marsleeza_85

Camne Nak Wat Username & Password Lebih Secure

Recommended Posts

baru-baru ini saya dicabar oleh officemate saya psl system security..
die berjaya godam dlm system saya..
tetapi system saya mmg xder security...
so saya nak tao code programming yg boleh prevent any kind of hacking..
mintak pendapat semua ahli putera.com...
tolong la ajar saya...

Share this post


Link to post
Share on other sites
Kod aturcara perlu diperkemaskan lagi. Rasanya dalam kod saudari ni banyak 'leaking'. Boleh la buat trouble shooting kod tersebut dan tampal untuk ditingkatkan lagi tahap keselamatannya.

Share this post


Link to post
Share on other sites
QUOTE(marsleeza_85 @ Dec 24 2008, 01:01 PM) <{POST_SNAPBACK}>
baru-baru ini saya dicabar oleh officemate saya psl system security..
die berjaya godam dlm system saya..
tetapi system saya mmg xder security...
so saya nak tao code programming yg boleh prevent any kind of hacking..
mintak pendapat semua ahli putera.com...
tolong la ajar saya...


godam direct from ur PC(he/she as ur PC user)?
godam from LAN?
godam from WAN?

Share this post


Link to post
Share on other sites
Cik kak ni pakai programming apa? Sbb kalo guna PHP ada cara utk elakkan dari kena godam...
Ada cara lebih secure.... Encrypt password dgn username dan guna session je setiap kali nak login...

Share this post


Link to post
Share on other sites
kat bawah ni adalah code untuk login_process..

<code>

<?
session_start();
include "connect.php";
unset($_SESSION['userid']);
unset($_SESSION['userlevel']);
?>

<title>Sistem Kehadiran Kursus</title>
<?

$userid = $_POST['userid'];
$userid = strtoupper($userid);

$password = $_POST['password'];

$status="OK";

if (!$_POST['userid'])
$status="KO";

if (!$_POST['password'])
$status="KO";

if ($status == "KO")
include "login.php";

if ($status == "OK")
{
$login = mysql_query("SELECT * FROM pengguna WHERE pg_nokp = '$userid'");
$numrows = mysql_num_rows($login);

if ($numrows==0)
{
echo "<script language='JavaScript'> alert('ID Pengguna ini tidak wujud');</script>";
include "login.php";
}

if ($numrows==1)
{
$row = mysql_fetch_array($login);
$katalaluan = $row['pg_katalaluan'];
$level = $row['pg_level'];
$pwdate = $row['pg_pw_old'];

$time = date("H:i d-m-Y");
$ip = $_SERVER['REMOTE_ADDR'];

if ($password != $katalaluan)
{
echo "<script language='JavaScript'> alert('Katalaluan tidak sah');</script>";
include "login.php";
}

if ($password == $katalaluan)
{
$_SESSION['userid'] = $userid;
$update=mysql_query("UPDATE pengguna SET pg_status='ONLINE',pg_online_time='$time',pg_ip='$ip' WHERE pg_nokp='$userid'");

if ($katalaluan != $userid && $pwdate!="")
{
$pwdate2 = date("d-m-Y");

$pwday = substr( $pwdate, 0, 2 );
$pwmonth = substr( $pwdate, 3, 2 );
$pwyear = substr( $pwdate, 6, 4 );

$pwday2 = substr( $pwdate2, 0, 2 );
$pwmonth2 = substr( $pwdate2, 3, 2 );
$pwyear2 = substr( $pwdate2, 6, 4 );

$start = strtotime($pwmonth."/".$pwday."/".$pwyear);
$end = strtotime($pwmonth2."/".$pwday2."/".$pwyear2);

$kira = abs($end-$start);
$kira_2 = floor($kira/86400);
$bilhari = $kira_2+1;

if ($bilhari > 30)
{
echo "<script language='JavaScript'> alert('Katalaluan anda tidak ditukar selama lebih 30 hari.\\nSila tukar katalaluan anda');</script>";
}


$checklog=mysql_query("SELECT * FROM pengguna WHERE pg_nokp='$userid'");
$rowlog=mysql_fetch_array($checklog);
$logstat=$rowlog['pg_status'];
$ipadd=$rowlog['pg_online_time'];
}

if ($level == "STAF")
{
$_SESSION['userlevel'] = 2;
include "staf_page.php";
}

if ($level == "ADMIN" || $level == "SYSADMIN")
{

if ($pwdate=="")
{
echo "<script language='JavaScript'> alert('Anda sedang menggunakan katalaluan default.\\nSila tukar katalaluan anda');</script>";
}

if ($level == "ADMIN")
$_SESSION['userlevel'] = 1;

if ($level == "SYSADMIN")
$_SESSION['userlevel'] = 0;

include "admin_page.php";
}
}
}
}
?>

</code>

Share this post


Link to post
Share on other sites
posibble hackz through

-sesion hijack
-sql injection

if he/she say that he hackz through Lan..that also mean that he/she had done directory traversal or perhaps he had acces through ur database and grab ur user login credential

google for more info Edited by slier

Share this post


Link to post
Share on other sites
member anda tuh godam guna LAN.. tak specific la anda bagi tahu..
dari segi programming untuk application.. untuk basic security
untuk Part LOGIN. aper yang perlu ada
1) VALIDATION setiap input data yang masuk ke dalam database
- andaikata data hendak dimasukkan ke dalam database hanya nombor sahaja - contoh telephone.. guna javascript or php untuk filter agar nomber sahaja boleh
terima.
- contohnya data email - boleh guna php or javascript untuk filter.. data berformat email boleh masuk ke database.
2) ENCRYPT data penting ke dalam database - password mesti encrypt [ jaga password user ] & guna mysql_escape_string (elakkan command SQL injection )

3) SESSION - untuk security page supaya takde org boleh jump page sesuka hati..
- masa login . setkan session.. create ID, username user ke dalam SESSION. so bila pergi ke page yang guest tak boleh capai.. jika session TRUE (true akan jadi bila
login berjaya) .. so baru dapat view page tersebut.
* benda ni perlu pemahaman konsep dgn betul... anda boleh google or rakan seprogramming anda untuk lebih tahu.
3 nih wajib ada..

more advance sikit..

guna CAPTCHA (googlekan diri jika ingin tahu lebih lanjut )- user kene masuk security code berdasarkan image yang keluarkan nombor & huruf. Ini nak elakkan spam bot or mana2 tool boleh try login teka username n password.

saya tak bagi code.. just nk bagi serba sedikit kefahaman konsep dan ape perlu tahu..

Share this post


Link to post
Share on other sites
member anda tuh godam guna LAN.. tak specific la anda bagi tahu..
dari segi programming untuk application.. untuk basic security
untuk Part LOGIN. aper yang perlu ada
1) VALIDATION setiap input data yang masuk ke dalam database
- andaikata data hendak dimasukkan ke dalam database hanya nombor sahaja - contoh telephone.. guna javascript or php untuk filter agar nomber sahaja boleh
terima.
- contohnya data email - boleh guna php or javascript untuk filter.. data berformat email boleh masuk ke database.
2) ENCRYPT data penting ke dalam database - password mesti encrypt [ jaga password user ] & guna mysql_escape_string (elakkan command SQL injection )

3) SESSION - untuk security page supaya takde org boleh jump page sesuka hati..
- masa login . setkan session.. create ID, username user ke dalam SESSION. so bila pergi ke page yang guest tak boleh capai.. jika session TRUE (true akan jadi bila
login berjaya) .. so baru dapat view page tersebut.
* benda ni perlu pemahaman konsep dgn betul... anda boleh google or rakan seprogramming anda untuk lebih tahu.
3 nih wajib ada..

more advance sikit..

guna CAPTCHA (googlekan diri jika ingin tahu lebih lanjut )- user kene masuk security code berdasarkan image yang keluarkan nombor & huruf. Ini nak elakkan spam bot or mana2 tool boleh try login teka username n password.

saya tak bagi code.. just nk bagi serba sedikit kefahaman konsep dan ape perlu tahu..

Share this post


Link to post
Share on other sites
aku selalu guna str_ireplace guna remove ' dan eregi untuk elakkan daripada "char" lain.


CODE
$username = strip_tags($_POST['username']);
$username = str_ireplace("'","", $username);

Refer 1 : http://www.php.net/strip_tags
Refer 2 :http://us2.php.net/str_ireplace

CODE
if ((eregi("[^a-zA-Z0-9_-]", $username)) || (eregi("[^a-zA-Z0-9_-]", $password)) || (eregi("[^a-zA-Z0-9_-]", $password2))){
echo 'Wrong Character Detect';
}else{

}

Refer : http://www.php.net/eregi

contoh stripslashes

CODE
$username = stripslashes($_POST['username']);


Refer : http://www.php.net/stripslashes

contoh mysql_real_escape_string

CODE
$username = mysql_real_escape_string($_POST['username']);


Refer : http://www.php.net/mysql_real_escape_string
p/s: aku tak cuba lagi script ni, aku cuma copy dari file yang aku simpan kat pc....malas nak try happy.gif .


- edit -

Pergi dekat http://www.phpclasses.org ada banyak script login/register dan lain-lain yang secure.

Harap dapat menbantu wink.gif. Edited by XShimeX

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...