PDA

View Full Version : ریختن یک صفحه aspx توی یک دیو در یک صفحه دیگه



killer-star
دوشنبه 24 دی 1386, 17:47 عصر
سلام دوستان

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

raravaice
دوشنبه 24 دی 1386, 17:53 عصر
سلام

اینی که گفتی چیزیه که شما بهش فکر میکنی.
صورت مسئله رو ریزش کن که چه کاری قراره انجام بشه.

killer-star
دوشنبه 24 دی 1386, 18:04 عصر
سلام

اینی که گفتی چیزیه که شما بهش فکر میکنی.
صورت مسئله رو ریزش کن که چه کاری قراره انجام بشه.

قراره سورس اون صفحه توی یک صفحه HTML قرار بگیره
من خودم با آژاکس تونستم یکارایی بکنم اما با چند نفر مشورت کردم و گفتن روش های بهتری :لبخند:باید باشه

raravaice
دوشنبه 24 دی 1386, 18:40 عصر
سلام

دقت کن که با AJAX فقط میتونی از حوزه دامنه خودت دیتا بخونی نمیتونی از سایت دیگه دیتا بگیری.

فکر نمیکنم با Java Script بتونی این کارو انجام بدی از سمت سرور بخون بفرست تو DIV

موفق باشی

killer-star
سه شنبه 25 دی 1386, 06:06 صبح
سلام

دقت کن که با AJAX فقط میتونی از حوزه دامنه خودت دیتا بخونی نمیتونی از سایت دیگه دیتا بگیری.

فکر نمیکنم با Java Script بتونی این کارو انجام بدی از سمت سرور بخون بفرست تو DIV

موفق باشی

با آژاکس الان این کار رو تونستم انجام بدم ... اما یک سری مشکلات داره
گفتم شاید راه های بهتری باشه !

mp2009
سه شنبه 25 دی 1386, 20:21 عصر
میشه کدت رو اینجا بزاری!

mp2009
سه شنبه 25 دی 1386, 20:32 عصر
البته با # c

killer-star
چهارشنبه 26 دی 1386, 18:13 عصر
البته با # c

دوست عزیز با آژاکس من کد نوشتم :

function loadXmlHttp()
{
if (window.XMLHttpRequest)
{ // IE7, Mozilla, Safari, Opera
xmlHttp = new XMLHttpRequest();
}

else if (window.ActiveXObject)
{
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); //IE 5.x, 6
}
catch(e) {}
}
}


function sendRequest(la, r)
{


if (xmlHttp)
{

url = 'show.aspx?la=' + la + '&r=' + r;
xmlHttp.open("GET", url, true); // true = async
xmlHttp.onreadystatechange = onCallback;
xmlHttp.setRequestHeader('Content-type',
'application/x-www-form-urlencoded');
xmlHttp.send(null);
}

}

function onCallback()
{
if (xmlHttp.readyState == 4)
{
if (xmlHttp.status == 200)
{
document.getElementById('mydiv').innerHTML = xmlHttp.responseText;
}

else
{
alert('Error: ' + xmlHttp.status);
}
}
}ajax.js

و توی فایل html


<script type="text/javascript" src="ajax.js"></script>
<script language="javascript">
window.onload = function() {
var xmlHttp = null;
loadXmlHttp();
sendRequest("EN", "http://somesite.com");
}
</script>


<div id="mydiv" style="position:absolute; overflow:hidden; left:532px; top:146px; width:483px; height:60px; z-index:7">
</div>

خیلی ضایع هست نه ؟

hamedgh
چهارشنبه 26 دی 1386, 19:09 عصر
می تونی در یک لیبل بریزی البته با استفاده از سی شارپ می توانی کدش را بگیری و
به یک لیبل اختصاص بدی کد سی شارپش هم در یکی از همین فروم ها هست
جستجو کن

hamid58
پنج شنبه 27 دی 1386, 00:52 صبح
Simple AJAX Code-Kit (http://www.twilightuniverse.com/projects/sack/) که به SACK معروفه ...

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

scorpion_man
پنج شنبه 27 دی 1386, 01:20 صبح
سلام

دقت کن که با AJAX فقط میتونی از حوزه دامنه خودت دیتا بخونی نمیتونی از سایت دیگه دیتا بگیری.

فکر نمیکنم با Java Script بتونی این کارو انجام بدی از سمت سرور بخون بفرست تو DIV

موفق باشی

با سلام به همه دوستان
دوست عزیز کی گفته فقط میتونی تو محدوده دامنه خودت از ajax استفاده کنی طوری که شما دارید بیان میکنید فکر کردم این یه استانداردیه که خبر نداریم
شاید کنترلهای آماده که برای ajax ساخته شدن جواب ندن اونم شاید چون تا حالا تستشون نکردم ولی خود تکنولوژی ajax با نوشتم کد حتما جواب داده و میده
موفق باشید

raravaice
پنج شنبه 27 دی 1386, 09:39 صبح
دوست عزیز کی گفته فقط میتونی تو محدوده دامنه خودت از ajax استفاده کنی طوری که شما دارید بیان میکنید فکر کردم این یه استانداردیه که خبر نداریم
جسارتا : ولی دقیقا این یه استاندارد امنیتیه که احتمالا شما خبر نداری.
شما مستقیما از طریق برنامه Ajax داخل صفحت نمیتونی به هیچ سایت دیگه یا حتی یکی از Subdomain های خودت Data Send کنی یا چیزی بخونی حتما باید یک صفحه واسط توی حوزه دامنه خودت تعریف کنی و از طریق این واسط دیتای محل های دیگرو بخونی.
مثل کاری که دوست عزیزمون killer-star (http://barnamenevis.org/forum/member.php?u=43766) کرده.

موفق باشی

scorpion_man
پنج شنبه 27 دی 1386, 10:35 صبح
جسارتا : ولی دقیقا این یه استاندارد امنیتیه که احتمالا شما خبر نداری.
شما مستقیما از طریق برنامه Ajax داخل صفحت نمیتونی به هیچ سایت دیگه یا حتی یکی از Subdomain های خودت Data Send کنی یا چیزی بخونی حتما باید یک صفحه واسط توی حوزه دامنه خودت تعریف کنی و از طریق این واسط دیتای محل های دیگرو بخونی.
مثل کاری که دوست عزیزمون killer-star (http://barnamenevis.org/forum/member.php?u=43766) کرده.

موفق باشی
با سلام به همه دوستان
عزیز دل برادر پس کدهای search engin google که از تکنولوژی ajax استفاده میکنه و تو هر سایتم کار میکنه چطور کار میکنن پس میبینید که امکان داره متاسفانه کاری که ما ها نمی تونیم انجام بدیم سریعا یه استاندارد بین المللی میکنیم و همه جا بیانیه صادر میکنیم و تو عرایض قبلیم هم گفتم که ممکن کنترلهای آماده ای که برای .net ساخته شدند کار نکنن ولی استفاده از کدهای جاوا اسکریپت که برا این کار هستند امکانشو فاهم میکنه
موفق باشید

raravaice
پنج شنبه 27 دی 1386, 11:11 صبح
سلام دوست عزیز
اگر منظور شما Google AdSense و اون دیالوگ سرچش هست که باید بگم اصلا Ajax نداره.
یه مسئله میمونه:
یه سری سایتهای تبلیغاتی هستند که بعد از گذاشتن سورس توی صفحه میاد کلمات صفحه شما رو با Ajax میفرسته برای سرور خودش و تجزیه تحلیل میکنه ولی یه کم که ریز میشی میبینی با تمام این حرفها کد مربوط به Ajax داره توی یه Iframe ساخته شده توسط Javascript برنامه که شما تو صفحت گذاشتی اجرا میشه که شما اونو نمیبینی مگر با دیباگر های html مثل firebug.
حالا شما اگر مثال داری با لینک بزار ببینیم یه چیزی هم از شما یاد گرفته باشیم.

Behrouz_Rad
پنج شنبه 27 دی 1386, 12:29 عصر
دوست عزیز کی گفته فقط میتونی تو محدوده دامنه خودت از ajax استفاده کنی
AJAX در Firefox تنها در حوزه ی دامنه ی جاری و در IE در خارج از حوزه می تونه استفاده بشه.

موفق باشید.

killer-star
پنج شنبه 27 دی 1386, 12:48 عصر
دوستان ممنون از جواباتون ولی کد بدید بهتره ممنون

raravaice
پنج شنبه 27 دی 1386, 13:04 عصر
سلام

با تشکر از آقای راد و فرمایش صحیح ایشون.
جساراتا در تکمیل فرمایشات ایشون باید عرض کنم در IE در صورتی این کار انجام میشه که بیننده این عمل را در پنجره ای در شکل زیر تایید کند.

http://www.xvay.com/AjaxAlertInIE.jpg

در جواب دوست خوبم آقای Scorpion : میگه برادر عزیز این صفحه میخواد به اطلاعاتی دسترسی داشته باشه که کنترلش جای دیگس و از لحاظ امنیتی یه ریسک است.آیا شما تمایل دارید که این عمل ادامه پیدا کند.
پس نتیجه اینکه این واقعا یه استاندارد امنیتی هست که حالا IE داره با یه اخطار به کاربر این استاندارد رو اینجوری رعایت میکنه.
-----------------------------------------------------------------------------------------

این کد برای استفاده شخصیه ولی کارتو توی هر مرورگری راه میندازه show_data رو هر جا خواستی صدا بزن یه آرگومان هم بهش بده که کار کنه پارامتر هاتم بنا به مورد استفاده تو requestURL تغییر بده



var xmlHttp;
var requestURL = '/SHOW.aspx?q=';
var is_ie = (navigator.userAgent.indexOf('MSIE') >= 0) ? 1 : 0;
var is_ie5 = (navigator.appVersion.indexOf("MSIE 5.5")!=-1) ? 1 : 0;
var is_opera = ((navigator.userAgent.indexOf("Opera 6")!=-1)||(navigator.userAgent.indexOf("Opera/6")!=-1)) ? 1 : 0;
var is_netscape = (navigator.userAgent.indexOf('Netscape') >= 0) ? 1 : 0;
function show_data(strName){
if (strName.length > 0){
var url = requestURL + strName;
xmlHttp = GetXmlHttpObject(stateChangeHandler);
xmlHttp_Get(xmlHttp, url);
}
else {
//document.getElementById('my_m').innerHTML = '';
//document.getElementById('my_p').innerHTML = '';
//document.getElementById('my_j').innerHTML = '';
//document.getElementById('my_c').innerHTML = '';
}
}

function stateChangeHandler()
{
if (xmlHttp.readyState == 4 || xmlHttp.readyState == 'complete'){

var str = xmlHttp.responseText;
alert(str);

}
}

function xmlHttp_Get(xmlhttp, url) {
xmlhttp.open('GET', url, true);
xmlhttp.send(null);
}
function GetXmlHttpObject(handler) {
var objXmlHttp = null;

if (is_ie){

var strObjName = (is_ie5) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP';


try{
objXmlHttp = new ActiveXObject(strObjName);
objXmlHttp.onreadystatechange = handler;
}
catch(e){

alert('IE detected, but object could not be created. Verify that active scripting and activeX controls are enabled');
return;
}
}
else if (is_opera){

alert('Opera detected. The page may not behave as expected.');
return;
}
else{

objXmlHttp = new XMLHttpRequest();
objXmlHttp.onload = handler;
objXmlHttp.onerror = handler;
} return objXmlHttp;}
function UseValue(strVal){document.frmStuff.txtName.value = strVal; }

scorpion_man
پنج شنبه 27 دی 1386, 14:38 عصر
سلام دوست عزیز
اگر منظور شما Google AdSense و اون دیالوگ سرچش هست که باید بگم اصلا Ajax نداره.
یه مسئله میمونه:
یه سری سایتهای تبلیغاتی هستند که بعد از گذاشتن سورس توی صفحه میاد کلمات صفحه شما رو با Ajax میفرسته برای سرور خودش و تجزیه تحلیل میکنه ولی یه کم که ریز میشی میبینی با تمام این حرفها کد مربوط به Ajax داره توی یه Iframe ساخته شده توسط Javascript برنامه که شما تو صفحت گذاشتی اجرا میشه که شما اونو نمیبینی مگر با دیباگر های html مثل firebug.
حالا شما اگر مثال داری با لینک بزار ببینیم یه چیزی هم از شما یاد گرفته باشیم.

دوست عزیز من منظورمو بالا نوشتم منظورم google ajax search هست شاید ترجمه این واژه از نظر شما google adsense میشه لطفا در مورد چیزی که حتی معنیشو نمیدونید اظهار نظر نکنید
من این عملو با کمی دستکاری تو کدهای google تو سایت خودم راه انداختم قابل توجه اونا که فرمودند تو firefox کدهای ajax فقط تو محدوده خودش کار میکنه این کدها تو ie,opera,firefox ,1001 مرورگر دیگه هم کار میکنه خودشم خارج از محدوده خودش لطفا استاندارد سازی نفرمائید جناب آقای raravaice
موفق باشید

scorpion_man
پنج شنبه 27 دی 1386, 14:42 عصر
جناب آقای raravaice هیچ نیازی به تائید و غیره و ذالک نداره من عرض کردم داره کار میکنه دیگه یه امر مسلم رو که دیگه نمیتونم انکارش بکنم حتما گوگل داره از تکنولوژی هجی مجی استفاده میکنه؟
موفق باشید

Behrouz_Rad
پنج شنبه 27 دی 1386, 14:48 عصر
من این عملو با کمی دستکاری تو کدهای google تو سایت خودم راه انداختم قابل توجه اونا که فرمودند تو firefox کدهای ajax فقط تو محدوده خودش کار میکنه
لطف کن نمونه ی کاری که انجام دادی رو جایی آپلود کن تا بشه بررسیش کنیم. شاید شما موفق شدی به طریقی روی محقق امنیتی بزرگ، Fady Anwar رو کم کنی ;)

scorpion_man
پنج شنبه 27 دی 1386, 14:55 عصر
لطف کن نمونه ی کاری که انجام دادی رو جایی آپلود کن تا بشه بررسیش کنیم. شاید شما موفق شدی به طریقی روی محقق امنیتی بزرگ، Fady Anwar رو کم کنی ;)

به به جناب آقای راد
خوش اومدی به بحث سلام
عرض شود که من مستقیما کد ننوشتم فقط کدهای ajax google رو دستکاری کردم که upload هم کردم خیلی وقت هست که داره کار میکنه اگه افتخار بدین و به سایت www.goods.ir (http://www.goods.ir)برید
اون پایین یه google search هست گذاشتم اونجا یه واژه بنویسید و رو button search کلیک بکنید
ببینید چطوری load میکنه و تو همه browser کار میکنه خوب google هم داره از همون object های ajax استفاده میکنه و خارج از دامنه هم کار میکنه موفق باشید

scorpion_man
پنج شنبه 27 دی 1386, 15:03 عصر
راستی آقای بهروز راد من دیروز یه پستی رو ارسال کردم تو پیغام خصوصی هم لینکشو براتون ارسال کردم که اساسی حال منو گرفته اینجا هم میذارم به این پستم دوستان یه سری بزنن شاید مشکل حل بشه http://barnamenevis.org/forum/showthread.php?t=91546
با تشکر از دوستان

Behrouz_Rad
پنج شنبه 27 دی 1386, 16:30 عصر
عرض شود که من مستقیما کد ننوشتم فقط کدهای ajax google رو دستکاری کردم که upload هم کردم خیلی وقت هست که داره کار میکنه اگه افتخار بدین و به سایت www.goods.ir برید
اون پایین یه google search هست گذاشتم اونجا یه واژه بنویسید و رو button search کلیک بکنید
ببینید چطوری load میکنه و تو همه browser کار میکنه خوب google هم داره از همون object های ajax استفاده میکنه و خارج از دامنه هم کار میکنه موفق باشید

حقیقت اینه که واقعیات و مستندات علمی بر پایه ی تعصبات و دلایل غیر فنی شکل نگرفتند.


Google API AJAX که ازش استفاده می کنی از AJAX استفاده نمی کنه! بلکه از تکنیک های On Demand استفاده می کنه. یعنی راه دیگه ای برای غلبه بر Cross Site Scripting نداره.
Google API AJAX سایتت رو به شدت در برابر XSS آسیب پذیر می کنه. کلا هشدارهای زیادی در مورد استفاده از فناوری های گوگل همیشه داده شده و میشه.


واقعیت اینه که "در حال حاضر" فقط IE از Cross Site Scripting پشتیبانی می کنه.
برای این پشتیبانی در W3C یک Draf تهیه شده که Firefox بر مبنای اون انشاا... در نسخه ی 3 از اون پشتیبانی می کنه.
در حال حاضر FF 3.0 Beta هم از Cross Site Scripting پشتیبانی می کنه اما تا ارائه ی نسخه ی نهایی، در نسخه ی رسمی جاری فایر فاکس (2.0.0.11)، این مهم محقق نشده.

Cross Site Scripting هم می تونه خوب باشه هم بد. خوب از این نظر که میشه بدون PostBack به اطلاعات صفحه ی دیگری در یک Domain دیگه دسترسی داشت و بد از این نظر که برنامه رو مستعد حملات XSS در پشت صحنه می کنه.
اما راهکاری نیز ارائه شده تا سایت هایی که مایل نیستند دیگر سایت ها از طریق Cross Site Scripting به صفحات اونها دسترسی داشته باشن، از طریق تنظیم هدر Access-Control بتونن مانع از این دسترسی بشن.

موفق باشید.

scorpion_man
پنج شنبه 27 دی 1386, 19:11 عصر
حقیقت اینه که واقعیات و مستندات علمی بر پایه ی تعصبات و دلایل غیر فنی شکل نگرفتند.


Google API AJAX که ازش استفاده می کنی از AJAX استفاده نمی کنه! بلکه از تکنیک های On Demand استفاده می کنه. یعنی راه دیگه ای برای غلبه بر Cross Site Scripting نداره.
Google API AJAX سایتت رو به شدت در برابر XSS آسیب پذیر می کنه. کلا هشدارهای زیادی در مورد استفاده از فناوری های گوگل همیشه داده شده و میشه.


واقعیت اینه که "در حال حاضر" فقط IE از Cross Site Scripting پشتیبانی می کنه.
برای این پشتیبانی در W3C یک Draf تهیه شده که Firefox بر مبنای اون انشاا... در نسخه ی 3 از اون پشتیبانی می کنه.
در حال حاضر FF 3.0 Beta هم از Cross Site Scripting پشتیبانی می کنه اما تا ارائه ی نسخه ی نهایی، در نسخه ی رسمی جاری فایر فاکس (2.0.0.11)، این مهم محقق نشده.

Cross Site Scripting هم می تونه خوب باشه هم بد. خوب از این نظر که میشه بدون PostBack به اطلاعات صفحه ی دیگری در یک Domain دیگه دسترسی داشت و بد از این نظر که برنامه رو مستعد حملات XSS در پشت صحنه می کنه.
اما راهکاری نیز ارائه شده تا سایت هایی که مایل نیستند دیگر سایت ها از طریق Cross Site Scripting به صفحات اونها دسترسی داشته باشن، از طریق تنظیم هدر Access-Control بتونن مانع از این دسترسی بشن.

موفق باشید.

با سلام به همه دوستان
ممنون از توضیحاتتون ولی با این حال بهتر بود سایت رو تو مرورگرهای دیگه هم چک میکردید و میدید که تو همه browser ها کار میکنه نه تنها ie
با هر تکنولوژی هم نوشته شده باشه کارش عین تکنولوژی ajax هست و از آبجکتهای این تکنولوژی بهره میبره
در ضمن در مورد خطرات xss عرض شود که تمامی این کارهایی که اتفاق میفته رو client انجام میشه و هیچ ارتباطی با سرور بنده نداره و اگر هم خطراتی سرور رو تهدید بکنه از این راه نخواهد بود و از 1000 راه دیگه خواهد بود
و اگه لطف کنید و مقاله ای در مورد خطرات xss معرفی کنید تا در مورد این نوع خطرات اطلاعاتی کسب کنم بی نهایت ممنون میشم
ممنون

scorpion_man
پنج شنبه 27 دی 1386, 19:20 عصر
من مقاله هایی پیدا کردم در مورد این نوع خطرات
ولی هشداری که داده به انجام عملیات postback بر روی سرور هست ولی چون هیچ عملیات postback همونطور که تو پست قبلی هم عرض کردم انجام نمیگیره و در صورت انجام postback هم این اطلاعات نادیده گرفته میشود پس جای نگرانی انشاءا... نخواهد بود
با تشکر

raravaice
پنج شنبه 27 دی 1386, 20:08 عصر
سلام

توی کدهایی که گوگل توی هر صفحه ای برای این امر Generate میکنه به این نکته رسیدم که انگار یه جایی گوگل یه Object میسازه و از طریق این Object که از آدرس http://www.google.com/uds و http://www.google.com/GwebSearch مقادیر خودش رو میگیره و همچنین این مقادیر از طریق فایل compiled.js واقع در آدرس
http://www.google.com/uds/api/search/1.0/en/8cc97e093e5dd5f4d9953384af8c68c6/compiled.js
به این object داده میشه که البته این فایل به صورت Runtime و توسط سورس
http://www.google.com/uds/api?file=uds.js&v=1.0&key=ABQIAAAAUNlQzNF0ZqwpghMtIGDiQBQbTBvThkNXzoeeTM cd88CmQ9vM-RRpGUPLIA4CgRdFRNgcEBumztWLPA
ساخته میشه که شما توی Viewsource معمولی قادر به شناسایی اون نیستی.

و در خط 278 این سورس (Complied.js) پاسخ از سرور دریافت میشه البته این شماره خط رو Debuger میگه صحتش رو توی اصل سورس بررسی نکردم و... (هنوز باز خوانی سورس تموم نشده)
"با توجه به اینکه باز خوانی کدهای جاوا اسکریپت که تماما در یک خط نوشته شده آن هم توسط شاهکار های فن برنامه نویسی در شرکت معظم گوگل بسیار دشوار میباشد"
--------------------------------------------------------------------------
به عنوان یک پرسش کننده که الان 2 ساعت دارم کدهای موجود Google برای این کار رو زیرو رو میکنم و به نتایج بهینه ای رسیدم از شما سئوال میکنم:
آیا توانایی این را دارید که از این کد برای استفاده شخصی خود غیر از سرچ گوگل استفاده نمایید که پیشنهاد آن را به دیگران میدهید؟

با تقدیم احترام به حضار این تاپیک

Behrouz_Rad
پنج شنبه 27 دی 1386, 20:59 عصر
ممنون از توضیحاتتون ولی با این حال بهتر بود سایت رو تو مرورگرهای دیگه هم چک میکردید و میدید که تو همه browser ها کار میکنه نه تنها ie

این اصلا مهم نیست که در چه مرورگری کار می کنه یا نمی کنه!
بحث ما بر سر این بود که Cross Site Scripting در حال حاضر فقط و فقط در IE می تونه استفاده بشه و بس! این اون چیزیه که مهمه تا متوجه بشی حرفی که زدی صحیح نیست.


با هر تکنولوژی هم نوشته شده باشه کارش عین تکنولوژی ajax هست و از آبجکتهای این تکنولوژی بهره میبره

میشه روشن بگی که منظورت از "آبجکت های این تکنولوژی" چیه؟
به من XMLHTTPRequest رو نشون بده. احتمالا می دونی که این آبجکت اصلی ترین آبجکت AJAX هست.
من فکر می کنم تا حالا در مورد On Demand اطلاعی نداشتی.


در ضمن در مورد خطرات xss عرض شود که تمامی این کارهایی که اتفاق میفته رو client انجام میشه و هیچ ارتباطی با سرور بنده نداره و اگر هم خطراتی سرور رو تهدید بکنه از این راه نخواهد بود و از 1000 راه دیگه خواهد بود

پیشنهاد موکد دارم که مقاله ی بنده در این مورد رو حتما بخونی تا نقض جمله ی مبهم فوق رو متوجه بشی.
http://barnamenevis.org/forum/showthread.php?t=91241&page=2

فکر می کنم یک بار دیگه نیاز هست که بگم:


حقیقت اینه که واقعیات و مستندات علمی بر پایه ی تعصبات و دلایل غیر فنی شکل نگرفتند.


موفق باشید.