Parsi Coders

نسخه‌ی کامل: افزونه های دیتالایف
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
درود:
در این بخش هک های نوشته شده برای سیستم مدیریت محتوای دیتالایف قرار می گیرد.
امیدوارم برای اعضا مفید باشه
درود:
اولین مطلب رو با امنیت در دیتالایف شروع میکنم:

با استفاده از این هک ساده شما می تونید سيستم مديريت محتواي ديتالايف رو حسابي در مقابل هكرها و كدهاي مخرب ايمن مي كنيد
كار شما اينه كه اين دو قطعه كد رو بعد از خط <?PHP در فايل index.php يعني اول صفحه بزاريد:

کد:
//[1] Prevent any possible XSS attacks via $_GET.
foreach ($_GET as $check_url) {
    if ((eregi("<[^>]*script*\"?[^>]*>", $check_url)) || (eregi("<[^>]*object*\"?[^>]*>", $check_url)) ||         (eregi("<[^>]*iframe*\"?[^>]*>", $check_url)) || (eregi("<[^>]*applet*\"?[^>]*>", $check_url)) ||         (eregi("<[^>]*meta*\"?[^>]*>", $check_url)) || (eregi("<[^>]*style*\"?[^>]*>", $check_url)) ||         (eregi("<[^>]*form*\"?[^>]*>", $check_url)) || (eregi("\([^>]*\"?[^)]*\)", $check_url)) ||             (eregi("\"", $check_url))) {
die ("<br><br><CENTER><b><font color='#ff0000'>Access Denied</font></b></CENTER>");
    }
}
unset($check_url);

// [2] Prevent any possible XSS attacks via QUERY_STRING.
$inArray = array("'", ";", ":", "/**/", "/UNION/", "/SELECT/", "AS ", "../", "..", "%", "*", "<", ">", "^", "$");    foreach($inArray as $res) {
                   if(stristr($_SERVER['QUERY_STRING'], $res)) {
die("<br><br><CENTER><b><font color='#ff0000'>Access Denied</font></b></CENTER>");
        }
    }

بعد از اين كار فايل index.php رو ذخيره كنيد.
این کد برای این کاره:
گاهی اوقات هکرها با دستکاری در url سایت و تزریق کد و اسکریپت سعی در نابودی سایت دارند که با این کار جلوی کارشون گرفته میشه



درود:
مطلب دوم هم به امنیت ربط داره :

یکی از ویژگیهای که در دیتالایف 8.5 ارائه شده تبدیل لینکهایی که به صورت نوشته هستند تبدیل به لینکهای قایل کلیک میشند که تو تنظیمات سایت میتونید اون رو فعال یا غیرفعال کنید . حالا با نصب این هک هم نوشتها به صورت لینک قابل کلیک میشند و هم به صورت حفاظت شده

فایل engine\inc\parse.class.php رو باز کنید :

کد زیر رو پیدا کنید :
کد پی‌اچ‌پی:
$source preg_replace("#(^|\s|>)((http|https|ftp)://\w+[^\s\[\]\<]+)#i"'\\1[url]\\2[/url]'$source); 

بعد جایگزین این کد کنید
کد:
$source=preg_replace( "#(^|\s|>)((http://|https://|ftp://)\w+[^<\s\[\]]+)#i"  , "\\1[leech]\\2[/leech]", $source );
$source=preg_replace( "#(^|\s|>)((magnet:\?)\w+[^<\s\[\]]+)#i"  , "\\1[url]\\2[/url]", $source );
درود:
دوستان این یکی هم یک افزونه ی امنیتی که تمام این افزونه ها را از سایت های ارئه دهنده ی دیتالایف (خارجی) میگرم و برای ترجمه و فارسی کردن خیلی زحمت میکشم پس قدر این افزونه ها رو بدونید:


کسی نتواند در سایت چند بار عضو شود.یعنی سیستم با تشخیص IP فرد، نمی گذاره که یک نفر چند تا اکانت تو سایت داشته باشه :

فایل Engine/Modules/Register.php رو بازش کنید و به دنبال کد زیر بگردید:

کد:
if (intval($config['reg_group']) < 3) $config['reg_group'] = 4;

در دو یا جند خط پایین ترش نوشته
کد:
$db->query("INSERT INTO " . USERPREFIX . "_users (name, password, email, reg_date, lastdate, user_group, info, signature, favorites, xfields, logged_ip) VALUES ('$name', '$regpassword', '$email', '$add_time', '$add_time', '".$config['reg_group']."', '', '', '', '', '".$_IP."')");


پس این کد را جایگزین کنید

کد:
$mysqlquery = $db->query("SELECT * FROM ".PREFIX."_users WHERE logged_ip = '$_IP'");
    if ($db->num_rows($mysqlquery) > 0)
    {
   msgbox("Sorry","You can not multi register...!");
    }
    else {
     $db->query("INSERT INTO " . USERPREFIX . "_users (name, password, email, reg_date, lastdate, user_group, info, signature, favorites, xfields, logged_ip) VALUES ('$name', '$regpassword', '$email', '$add_time', '$add_time', '".$config['reg_group']."', '', '', '', '', '".$_IP."')");
    }


در صورت عضوت دوباره در سایت با پیغامSorry - You can not multi register رو برو میشون

درود:
دیگه امنیت بسه :
بالا بردن سرعت لود صفحه کارش اینه که میاد TPL های قالب رو کش می کنه برای بارگزاری سریعتر

خوب شروع میکنم:
کد:
engine/classes/templates.class.php

رو باز کنیدو دنبال کد زیر بگردید:
کد:
function load_template($tpl_name) {

و بعد از کد بالا کد زیر رو قرار بدید:
کد:
if( $this->CacheTemplate[ $tpl_name ] )
    {
        $this->copy_template = $this->CacheTemplate[ $tpl_name ];
        return true;

همچنین توی همین فایل کد زیر رو پیدا کنید:
کد:
$this->copy_template = $this->template;

و بعد از کد بالا کدزیر رو قرار بدین:
کد:
$this->CacheTemplate[ $tpl_name ] = $this->template;

تست شده بر روی دیتالایف ورژن های 8 و 9
کد:
DLE: 8.х-9.х



این مطلب در سایت دیتالایف ایران دیدم .و گفتم بزارم بد نیست
بوسیله این هک شما می تونید یک محلی برای نمایش تاریخ امروز در سایت خودتان ایجاد کنید...


فایل ضمیمه را دانلود و در محل مشخص شده قرار دهید،سپس...
فایل دانلود رو ضمیمه نکردم ولی کدش رو در اوردم فقط تو نت پد کپی کنید با پسوند php سیو کنبد
کد:
<?php
/*
=====================================================
DataLife Engine - By SMostafa Moosavi
-----------------------------------------------------
http://datalifeengine.ir/
-----------------------------------------------------
Copyright (c) 2004,2011 DLE Farsi Group
=====================================================
File: show_jdate.php
=====================================================
*/
if( ! defined('DATALIFEENGINE') ) {
    die( "Hacking attempt!" );
}

if( ! $foramt ) $format = "l, d F Y";

echo jdate($format)
?>


کد زیر را درون قالب خود قرار دهید:
کد:
{include file="engine/modules/show_jdate.php?format=d F Y"}


شما می تونید از کدهای زیر جهت نمایش استفاده کنید

:
کد:
H = ساعت الان، مثلا: 15
h = ساعت الان، مثلا: 3
i = دقیقه الان، مثلا: 46
s = ثانیه الان، مثلا: 59
a = قبل از ظهر و یا بعد از ظهر سه حرفی، مثلا: ب.ظ
A = قبل از ظهر و یا بعد از ظهر کامل، مثلا: بعد از ظهر

j = تاریخ امروز یک رقمی، مثلا: 6
d = تاریخ امروز دو رقمی، مثلا: 06
l = روز در هفته بصورت حروف، مثلا: یکشنبه
D = روز در هفته بصورت تک حرفی، مثلا: ی
n = تاریخ این ماه بصورت عدد تک رقمی، مثلا: 5
m = تاریخ این ماه بصورت عدد، مثلا: 05
F و M = تاریخ این ماه بصورت حروف، مثلا: مرداد
Y = تاریخ امسال، مثلا: 1390
y = تاریخ امسال، مثلا: 90

تمام...