PDA

View Full Version : بروز رسانی یک فایل از یک سایت دیگه



navid3d_69
سه شنبه 02 آبان 1391, 18:49 عصر
سلام میشه یک فایل از سایت شماره A رو اگر تغییری کرد توی سایت شماره B هم این تغییر روی همون فایل انجام بشه چجوری میشه همچین کاری کرد

MMSHFE
سه شنبه 02 آبان 1391, 19:20 عصر
با این راهی که مدنظرم هست میشه ولی باید احتیاطهای امنیتی لازم رو انجام بدین:
1- فایلی بنام update.php با این محتوا توی سایت B بگذارین:


<?php
require_once 'config.php';
if(isset($_POST['contents'], $_POST['file'], $_POST['key'])) {
// Check key value with the value stored in config file or DB
if($key == SITE_KEY) {
if(file_exists($_POST['file'])) {
file_put_contents($_POST['file'], $_POST['contents']);
}
}
}
?>

2- حالا توی سایت A هرموقع یک صفحه تغییر کرد، محتوای جدید اون رو با file_get_contents بدست بیارین و با cURL فایل update.php رو از سرور B فراخوانی کنید و محتوای جدید اون فایل و اسم (و مسیر) و همچنین کلید اختصاصی که برای تبادل اطلاعات بین دو سایت درنظر گرفتین رو با روش POST برای فایل مذکور بفرستین.
البته همونطور که گفتم، باید روی بحث امنیت این روش خیلی کار کرد چون به راحتی با لو رفتن مکانیزمتون، درصورتی که امنیتهای لازم رو اعمال نکرده باشین، index.php و حتی تمام فایلهای سایتتون قابل تغییر خواهد شد. قراردادن یک کلید اختصاصی بین دو سرور و ذخیره اون توی دیتابیس حداقل پارامتر امنیتی بود که بهش اشاره کردم. سایر روشها مثل چک کردن HTTP Referer (هرچند قابل جعله) و یا روشهای پیچیده تر مثل قراردادن یک رمز تصادفی در بازه های زمانی مختلف توی دیتابیس یک سرور و اعلام به سرور دیگه جهت جلوگیری از لورفتن این کلید در روشهای هک کردن رایج مثل شنود شبکه و... رو هم باید درنظر بگیرین. بطور کلی این روش توصیه نمیشه. اگه میخواین محتوای یکسری صفحات سایت B و A یکی باشه، میتونید به راحتی توی یکی از سایتها، با درخواست صفحه موردنظر، همون صفحه رو از سرور دیگه درخواست کنید و خروجی اون رو نشون بدین چون محتوای دو صفحه دقیقاً یکی هست و درنتیجه نیازی نیست که سورس کد PHP صفحه توی هر دو سایت باشه و برای بازدیدکننده هم فقط نتیجه اجراش مهمه. حتی میتونید برای مواردی که برخی بخشهای صفحه (مثل هدر و...) باید توی دو سایت متفاوت باشه ولی محتوای داخل صفحه یکسان باشه هم از روشهایی ساده استفاده کنید. مثلاً یک فایل برای محتوا داشته باشین و توی هر دو سایت، همون رو بخونید و موقع نمایش، هدر و... رو برحسب سایت موردنظر بهش اضافه کنید.
موفق باشید.

navid3d_69
سه شنبه 02 آبان 1391, 19:28 عصر
من می خوام در سایت قسمت بروزرسانی قرار بدم ولی ممکنه کاربر قسمت بروز رسانی رو باز نکنه که فایل آپدیت بشه شما برای این قسمت چه راهی رو پیشنهاد می کنید؟ که کمترین مشکل امنیتی رو داشته باشه

MMSHFE
سه شنبه 02 آبان 1391, 19:35 عصر
میتونید از Cron Jobs استفاده کنید و در فواصل زمانی مشخص، قسمت بروزرسانی رو اجرا کنید. حتی میتونید یک فایل جداگانه برای بروزرسانی داشته باشید و در زمان تغییر هر بخش در سایت A، اون فایل رو صدا بزنید تا بطور خودکار با تغییر فایلهای سایت A اون فایل فراخوانی بشه و سایت B رو اصلاح کنه.

navid3d_69
سه شنبه 02 آبان 1391, 19:38 عصر
خیلی ممنون که همیشه کمک می کنید اگر وقت داشتین و امکانش بود یک نمونه کد کوچک قرار بدین ممنون میشم