banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Messages posted by: lyhuuloi  XML
Profile for lyhuuloi Messages posted by lyhuuloi [ number of posts not being displayed on this page: 3 ]
 
Ngoài ra để an toàn hơn, thông thường người ta chỉ kiểm tra username, sau đó giá trị trả về thì đem so sánh Password với nhau sẽ secured hơn.

Chưa kể bạn còn có thể mã hóa password bằng 2 lần md5() hoặc phân nó ra làm 2 fields sau đó gộp lại rồi mã hóa md5(), rất nhiều cách.
Code:
select * from Khachhang where TenDN='{$TenDN}' and MatKhau
='{$MatKhau}'

Ứng với câu lệnh thế này, thì bạn cần hiểu là:

$TenDN = ' or '1'='1
$MatKhau = ' or '1'='1

Thì câu lệnh sẽ trở thành:

Code:
select * from Khachhang where TenDN='' or '1'='1' and MatKhau
='' or '1'='1'

Hiển nhiên khi bạn chạy câu lệnh này nó sẽ là câu lệnh đúng, do vậy đó là cách bạn đăng nhập không cần password.

Khắc phục:

Bằng cách chèn dấu slash bằng hàm addslashes() để vô hiệu hóa dấu ' mà User nhập vào là OK.
Oh không, đó chỉ là những lệnh được apache quy định sẵn không nên gọi là ngôn ngữ, còn .htaccess có nhiệm vụ ghi nhận những lệnh đó overwrite vào dưới quyền cho phép như khi edit file httpd.conf thôi !
Oh sorry bác, mình gõ nhầm, code phải viết là:

Code:
RewriteRule ^([\?a-zA-Z0-9]*) download.php?id=$1

Chèn dấu "?" vào trong ngoặc vuông và thêm 1 dấu \ vào để nó hiểu ko phải là ký hiệu mà chỉ là một dấu ? là ok.
dùng .htaccess liệu có wwwect url được không? ví dụ detect visitter ở vn là chuyển url sang google.com.vn như google?. ai rõ vụ này không? 

Tất nhiên là được, .htaccess hay cụ thể là Mod Rewrite có thể làm được rất nhiều việc, và bạn chỉ cần tạo một thuộc tính là [R] (Redirect) ở phía sau 1 RewriteRule là ok.

Code:
RewriteCond %{REMOTE_ADDR} ^202\.12\.13\.14$ [OR]
RewriteCond %{REMOTE_ADDR} ^202\.12\.13\.15$
RewriteRule .* http://google.com.vn [R,L]

Còn địa chỉ IP thuộc VN thì tùy thuộc vào bạn smilie


Chú thích:
RewriteCond = Rewrite Condition, điều kiện cho 1 Rewrite Rule
R = Redirect
L = Last Rule
Em đang cần chuyển /?id về /download.php?id nhưng dùng kí tự ? trong htaccess hình như không được, anh nào chỉ cho em được ko ạ.
demo như trang này smilie
http://www.mediafire.com/?enmtn5dgzi0 

Được chứ bác !

.htaccess không phải là không làm được mà bác không biết làm smilie

Bác có thể viết một RewriteRule thế này:

Code:
RewriteRule ^?([a-zA-Z0-9]*) download.php?id=$1


Bác test đi nhé smilie
Hợp lý là thế nào bạn nhỉ ? câu hỏi ở trên là "sql injection" thì ở dưới bạn nên hỏi là nhập thế nào hoặc chặn sql injection bằng cách nào chứ ?
À quên, còn cái hiệu ứng xuất hiện flash, hoặc cái khung flash đó chuyển động thế nào thì bác nên tự viết mới đúng theo ý mình smilie
Bạn dùng thuộc tính display trong CSS ấy, ví dụ:

Code:
<script language="javascript">
<!--
function close_flash()
{
document.getElementById("flash").style.display = "none";
}
//-->
</script>
<div id="flash">
[code FLash]
</div>
<a href="javascript:close_flash();">Click here to close</a>


Mình type trực tiếp vào textarea này nên ko test lại, chủ yếu là ở dòng style.display = "none" bác nhé smilie
Ý tưởng nghe có vẻ hay chứ nhỉ smilie Nhưng để làm nó mà chưa hiểu về cách hoạt động của torrent, chưa kể lại không rành về mạng mà lại thiên về Win Form, bác có thấy bác có quá tham lam không ?

Em có đọc qua và xin tóm gọn lại như sau:

Vấn đề 1: Server có 1 hoặc n file(s) game(s)
Vấn đề 2: Client download 1 hoặc n file(s) game(s) ở Server
Vấn đề 3: Sau khi client download xong thì thực hiện quá trình upload (Như Torrent)
Vấn đề 4: Một client khác khi download link trên Server thì được tự động dẫn tới những link do Client ở vấn đề 3 upload.

Như vậy, sẽ dễ dàng nhận thấy điểm quan trọng nhất là ở vấn đề 3, khi Client thực hiện quá trình upload thì file đó sẽ upload về đâu ? - Cơ bản nếu bác dùng server mà lại cho upload ngược vào Server bác thì là vô nghĩa - Còn nếu cứ cho upload bâng quơ thì rõ ràng lại càng không được, vì lập trình chứ không phải sáng tác thơ smilie Như vậy cũng sẽ quay lại peer to peer thôi smilie

Cho nên nếu chỉ dùng ngôn ngữ lập trình thì có lẽ là không được và em nghĩ không đơn giản mà người ta lại có hẳn một giao thức gọi là BitTorrent.
Mình cũng không muốn nói nhiều, nhưng nếu bạn cẩn thận thì bạn sẽ thấy rõ những con shell đều có một vài đặc điểm chung smilie Do vậy mình cũng chưa cần phải biến vội đâu nhỉ smilie
Thông cảm cho [Tic.Tac] nào, chắc là quen viết kiểu Teen age nên khi viết cái gì cũng thiếu nét, sửa chữ.... nhưng tên biến trong lập trình web viết tắt được thì lại càng tốt smilie
Sáng tạo thì cần phải có kiên nhẫn và đam mê, cứ cho là bạn có đam mê, nhưng để kiên nhẫn thì bạn phải có sức khỏe tốt... mà làm gì mà tới "quá yếu" vậy :-&
Code:
<?php
echo "<a href='#' onclick='update_widget(' widget.php?l1=1');'">click</a>" ;
?>

Bạn viết lại như sau:

Code:
<?php
echo "<a href='#' onclick='update_widget(\' widget.php?l1=1\');'>click</a>" ;
?>
Ừ, đúng smilie Có lẽ nên kiểm tra nội dung xem có phải là text file không smilie
Dù có sữa lại code thề này thì người ta vẫn có cách tạo ra 1 con r57 để sài đó smilie 

Thế thì viết thêm một đoạn code vào cuối phần upload để check nội dung thì sao >smilie
Biến $link lúc này là 1 mảng được tạo:

Code:
$link = explode(".", $link);


Khi đó dùng hàm count() để tính số rows trong mảng đó, link của 1 file php khi upload lên rapidshare thường có đoạn cuối là: .php.html

Như vậy nếu -1 thì kết quả sẽ lấy là html, -2 là php. Vậy thui :d
Em nghĩ để khắc phục khe hở trên thì nên tạo 1 hash riêng cho từng thành viên, khi đó trên mỗi URL có tác động đến những thông tin nhạy cảm thì sẽ có thêm đoạn "&mem_key=abc" trong URL, như vậy chỉ cần kiểm tra mem_key trên URL so sánh với mem_key của thành viên đó là ok smilie
Mới update thêm > 40 ebooks, xin xem trang đầu.
Mình chỉ có dịp làm 1 dự án có sử dụng VBB nên tìm hiểu qua phần login và register để tích hợp cms của mình, nên không thể gọi là nghiên cứu mã nguồn VBB nhiều :p
Đã update thêm sách, mời bạn vô trang đầu xem.
Mấy files trong đó phần lớn do sưu tầm, tắt firewall hay real-time antivirus thì coi chừng đó bạn à :d

Hiện tại bác nào muốn download thì cần đăng nhậppost ít nhất 5 bài ở diễn đàn vì anh em vô download đông quá làm tui chuyển hosting liên tục smilie ( hổng có tiền mua server ).

Và do có phần kiểm tra mã xác nhận nên chỉ gửi được 1 request tải về.
Đã cập nhật thêm ebooks, xin xem trang 1.
1. Đăng nhập

Chuẩn bị:
+ $input_pwd: password nhập vào khi đăng nhập
+ $user_hash: giá trị của field "converge_pass_hash" trong table "ibf_members_converge" ứng với id theo username điền vào.
+ $user_salt: giá trị của field "converge_pass_salt" trong table "ibf_members_converge" ứng với id theo username điền vào.

Simple code snippet:

Code:
function converge_member ( $md5_once_password, $sql_password, $salt_password )
{
if ( ! $sql_password )
{
return FALSE;
}
if ( $sql_password == converge_passhash( $salt_password, $md5_once_password ) )
{
return TRUE;
}
else
{
return FALSE;
}
}
function converge_passhash($salt, $md5_once_password)
{
return md5( md5( $salt ) . $md5_once_password );
}
if ( converge_member ( $input_password, $sql_password, $salt_password ) != TRUE )
{
print "Wrong password, sir ^_^";
}


2. Đăng ký:


... Khi khác viết tiếp lại dở chứng làm biếng :d
Em cần chỗ nào bảo mật THẤP.Càng THẤP càng tốt 

Lão này xem ra không chỉ đơn giản là học làm web đâu nhé smilie)
Ai trả lời được câu hỏi của bạn chắc hẳn phải là cao thủ smilie)
Lâu lắm rồi không viết tut smilie). với những thông tin dưới đây mà lhl xem được ở IBF và VBB, hy vọng sẽ giúp phần nào cho các bạn muốn tích hợp sản phẩm của mình với IBF hoặc VBB.

VBB:

1. Đăng nhập:

Chuẩn bị:
+ $input_pwd: password nhập vào khi đăng nhập
+ $user_salt: giá trị của field "salt" trong table "user" ứng với username điền vào.
+ $user_pwd: giá trị của field "password" trong table "user" ứng với username điền vào.

Kiểm tra:

Code:
md5($input_pwd.$user_salt) != $user_password


2. Đăng ký:

+ Chuẩn bị:
+ $input_pwd: password nhập vào khi đăng ký

Mã md5 của field "password" được lập như sau:

Code:
// make salt
$salt = '';
for ($i = 0; $i < 3; $i++)
{
$salt .= chr(rand(32, 126));
}
// Make pwd
$password = md5($input_pwd.$salt);


You will fail if you dont try your best - lhl.

IBF:


PS: Để... mai soạn, giờ đi ngủ ... ^_^. Thuật toán của VBB đơn giản hơn IBF đó bạn ạ.
 
Go to Page:  First Page Page 1 Page 3 Last Page

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|