PDA

View Full Version : بررسی امنیت سایت



night11
دوشنبه 26 آذر 1386, 17:46 عصر
سلام
دوستان من تقریبا یک سری از موارد جلوگیری از XSS رو داخل یه سایت آزمایشی رعایت میکنم مثل اینکه اجازه وارد کردن یه سری حروف و باز کردن تگ در کلایننت داده نمیشه و در سرور بررسی میکنم آیا این موارد باز هم وجود داره یا نه
یک سری مواد دیگه رو هم رعایت کردم مثل اینکه کانشکن استرینگ رو بصورت encrypt داخل وب کانفیگ گذاشتم و فیلدهای مهمه دیگری رو هم داخل دیتا بیس encrypt کردم. چه کارهای دیگه ای هم باید انجام بدم برای جلوگیری از نفوذ؟ البته میدونم نفوذ ناپذیری کامل نداریم ولی خوب میخوام تا اونجایی که میشه این احتمال رو کم کنم
لطفا من رو راهنمایی کنین
و از دوستان کسی با این ابزار کار کرذه ممنون میشم اگه کار کردین نتیجشو هم بگین
http://www.microsoft.com/downloads/details.aspx?FamilyID=19a9e348-bdb9-45b3-a1b7-44ccdcb7cfbe&displaylang=en

cybercoder
دوشنبه 26 آذر 1386, 18:00 عصر
ابزاری وجود داره به نام nikto که با استفاده از Perl طراحی شده و کلیه سوراخ سنبه های Webserver و مقداری هم خود متدهای استفاده شده در کدهات رو بررسی و اشکالات و نقایص امنیتی رو پیدا می کنه.

Behrouz_Rad
دوشنبه 26 آذر 1386, 21:51 عصر
Nikto چطور می تونه کدهای من رو بررسی کنه؟

scorpion_man
سه شنبه 27 آذر 1386, 00:17 صبح
با سلام به همه دوستان
کدها رو که 100% نمیتونه بررسی کنه احتمالا منظورشون پورتها و پروتوکلها رو بررسی میکنه
اما دوست عزیز من چندتا هم کای که میتونه امنیت شما رو نسبی افزایش بده البته اون چیزایی که خاطرم هست رو بیان میکنم
1- استفاده دستورات پارامتریک در querry گرفتن از دیتابیستون
2-البته این مورد اول جلوی این موردم میگیره ولی یه کلاس هم داشته باشید برای جلوگیری از querry injection که این علائم و دستورات رو حذف کنه ',delete,update,insert,....
3- استفاده از urlrewriting جهت مخفی کردن مسیرهای واقعیتون
4- بررسی permissin های فولدرهای server و ندادن permission های غیر ضروری به فولدرها و ......
موفق باشید

miladr
سه شنبه 27 آذر 1386, 03:22 صبح
با سلام به همه دوستان
کدها رو که 100% نمیتونه بررسی کنه احتمالا منظورشون پورتها و پروتوکلها رو بررسی میکنه
اما دوست عزیز من چندتا هم کای که میتونه امنیت شما رو نسبی افزایش بده البته اون چیزایی که خاطرم هست رو بیان میکنم
1- استفاده دستورات پارامتریک در querry گرفتن از دیتابیستون
2-البته این مورد اول جلوی این موردم میگیره ولی یه کلاس هم داشته باشید برای جلوگیری از querry injection که این علائم و دستورات رو حذف کنه ',delete,update,insert,....
3- استفاده از urlrewriting جهت مخفی کردن مسیرهای واقعیتون
4- بررسی permissin های فولدرهای server و ندادن permission های غیر ضروری به فولدرها و ......
موفق باشید

5 - تنظیم custom error page که اگه اگه تونست error بگیره چیزی نبینه کا جالبی که من دیدم تو سایت songbsong بود اگه تلاش کنی inject کنی بعد سه بار پیغام میده که این کا شما خلافه و پیگرد داره البته پیگردش که فکر نمی کنم عملی باشه اما کاره قشنگیه.

pourhabibi
سه شنبه 27 آذر 1386, 07:38 صبح
سلام
تنظیم custom error page باید توی webconfig انجام بشه؟ باید روی چه مدی تنظیم بشه؟

ClaimAlireza
سه شنبه 27 آذر 1386, 22:22 عصر
تنظیم custom error page باید توی webconfig انجام بشه؟ بله.
باید روی چه مدی تنظیم بشه؟RemoteOnlyاگه به خود web.config دقت کنی به صورت comment در حالت default برات گذاشته...

mehrdad201
چهارشنبه 28 آذر 1386, 00:10 صبح
ببینم ارور های دیتابیس رو هم میشه باهاش هندل کرد ؟؟؟؟؟

مثلا ارور مربوط به null یا duplicate ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

یکی من رو در این زمینه راهنمایی کنه

pourhabibi
چهارشنبه 28 آذر 1386, 11:22 صبح
با سلام به همه دوستان
کدها رو که 100% نمیتونه بررسی کنه احتمالا منظورشون پورتها و پروتوکلها رو بررسی میکنه
اما دوست عزیز من چندتا هم کای که میتونه امنیت شما رو نسبی افزایش بده البته اون چیزایی که خاطرم هست رو بیان میکنم
1- استفاده دستورات پارامتریک در querry گرفتن از دیتابیستون
2-البته این مورد اول جلوی این موردم میگیره ولی یه کلاس هم داشته باشید برای جلوگیری از querry injection که این علائم و دستورات رو حذف کنه ',delete,update,insert,....
3- استفاده از urlrewriting جهت مخفی کردن مسیرهای واقعیتون
4- بررسی permissin های فولدرهای server و ندادن permission های غیر ضروری به فولدرها و ......
موفق باشید

سلام
میشه یکمی بیشتر راجع به UrlWriting توضیح بدین و مثال بزنین که این کار چطور باید انجام بشه؟

scorpion_man
پنج شنبه 29 آذر 1386, 00:29 صبح
سلام
تنظیم custom error page باید توی webconfig انجام بشه؟ باید روی چه مدی تنظیم بشه؟
با سلام به همه دوستان
اگه خواستین custom error رو فعال کنید باید On بکنیدش و برای خطاها مسیر اون خطا رو بدید
البته من یه راه بهتری اینجا میزارم که خیلی بهتره و قابلیتهاشو مینویسم
و اون گرفت خطاها تو event Application_Error تو فایل global.asax هست اما قابلیتهاش
1- شما میتونید اینجا به راحتی کد بنویسید یعنی عین یه کلاس کد بنویسید اینم تقریبا جواب اون دوستمون که میخواستن برای error های database کد بنویسن
2- از object server.getlasterror هم میتونید آخرین خطای رخ داده رو هندل کنید
3-میتونید نسبت به خطاهای مختلف کارهای خاصی بکنید مثل غیر فعال کردن اکانت و خیلی چیزهای زیاد دیگه من تو اکثر web application ها از این استفاده کردم جواب میده
البته یه چیز دیگه هم یادم نرفته بگم این custom error رو هم On کنید به این خاطر که اگه یه لحظه ای خود اینم error بده اون سوپاپ اطمینان باشه
موفق باشید

scorpion_man
پنج شنبه 29 آذر 1386, 00:40 صبح
سلام
میشه یکمی بیشتر راجع به UrlWriting توضیح بدین و مثال بزنین که این کار چطور باید انجام بشه؟
با سلامی دوباره
اما در مورد این دوستمون که باید بگم UrlReWriting هست که احتمالا re رو فراموش کردن
کلا عمل UrlReWriting به عملیات گرفتن کلیه درخواستها به سرور و بازنویسی درخواستها
عمل UrlReWriting گفته میشه که با هندلهای Begin_Request ,... گرفته میشه یعنی کلا از کلاسهای HttpRequest ارث بری دارن و باعث میشه تمامی آدرسها به صورت مجازی تعریف بشن یعنی user هرگز آدرسها دقیق و صفحات شما رو نمیبینه و شما با بازنویسی این آدرسها و وتبدیل آدرسهای مجازی به آدرسهای واقعی کارتون رو انجام میدید
البته این عملیات تو IIS به خوبی apache و سرورهای لینوکس خوب Support نمیشه یعنی شما برای هندل کردن درخواستهاتون حتما باید پسوندهای ارسالی از aspx,ashx,asax,... تشکیل شده باشه و نمیتونید پسوندهای gif,jpeg,...رو هندل کنید ولی میتونید با تغییر پسوندهاشون تو آدرس دهی این کار رو هم انجام بدید بالاخره این راه هم چندین بار تو چند پروژه تست شده و خیلی خوب جواب داده و مطمئن هست

mehrdad201
پنج شنبه 29 آذر 1386, 01:35 صبح
مثل اینکه کانشکن استرینگ رو بصورت encrypt داخل وب کانفیگ گذاشت


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

سپاسگذارم....

mehrdad201
پنج شنبه 29 آذر 1386, 01:52 صبح
با سلام به همه دوستان
اگه خواستین custom error رو فعال کنید باید On بکنیدش و برای خطاها مسیر اون خطا رو بدید
البته من یه راه بهتری اینجا میزارم که خیلی بهتره و قابلیتهاشو مینویسم
و اون گرفت خطاها تو event Application_Error تو فایل global.asax هست اما قابلیتهاش
1- شما میتونید اینجا به راحتی کد بنویسید یعنی عین یه کلاس کد بنویسید اینم تقریبا جواب اون دوستمون که میخواستن برای error های database کد بنویسن
2- از object server.getlasterror هم میتونید آخرین خطای رخ داده رو هندل کنید
3-میتونید نسبت به خطاهای مختلف کارهای خاصی بکنید مثل غیر فعال کردن اکانت و خیلی چیزهای زیاد دیگه من تو اکثر web application ها از این استفاده کردم جواب میده
البته یه چیز دیگه هم یادم نرفته بگم این custom error رو هم On کنید به این خاطر که اگه یه لحظه ای خود اینم error بده اون سوپاپ اطمینان باشه
موفق باشید


دوست عزیز میتونی یه سمپل واسه من بذاری....:لبخندساده:

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

mehrdad201
پنج شنبه 29 آذر 1386, 02:15 صبح
اه این پست من چرا 100 دفعه اومده ؟؟؟؟؟؟؟؟؟؟ 2 3 بار سایت دیتابیس ارور داد ....

از مدیر محترم تقاضا دارم اگه امکان داره 2 پست اضافی رو پاک کنند.

بابت این اشتباه هم عذرخواهی می کنم.

mehrdad201
پنج شنبه 29 آذر 1386, 02:17 صبح
با سلامی دوباره
اما در مورد این دوستمون که باید بگم UrlReWriting هست که احتمالا re رو فراموش کردن
کلا عمل UrlReWriting به عملیات گرفتن کلیه درخواستها به سرور و بازنویسی درخواستها
عمل UrlReWriting گفته میشه که با هندلهای Begin_Request ,... گرفته میشه یعنی کلا از کلاسهای HttpRequest ارث بری دارن و باعث میشه تمامی آدرسها به صورت مجازی تعریف بشن یعنی user هرگز آدرسها دقیق و صفحات شما رو نمیبینه و شما با بازنویسی این آدرسها و وتبدیل آدرسهای مجازی به آدرسهای واقعی کارتون رو انجام میدید
البته این عملیات تو IIS به خوبی apache و سرورهای لینوکس خوب Support نمیشه یعنی شما برای هندل کردن درخواستهاتون حتما باید پسوندهای ارسالی از aspx,ashx,asax,... تشکیل شده باشه و نمیتونید پسوندهای gif,jpeg,...رو هندل کنید ولی میتونید با تغییر پسوندهاشون تو آدرس دهی این کار رو هم انجام بدید بالاخره این راه هم چندین بار تو چند پروژه تست شده و خیلی خوب جواب داده و مطمئن هست

در این مورد سمپل #C دارید. البته من سمپل وی بی شو پیدا کردم..

به زودی نگاش می کنم.

cybercoder
پنج شنبه 29 آذر 1386, 11:44 صبح
Nikto چطور می تونه کدهای من رو بررسی کنه؟

اولا کلمه ای به نام مقداری در اون پست هست ثانیا از اولم قرار نبود کدهای شما بررسی بشه

scorpion_man
پنج شنبه 29 آذر 1386, 12:58 عصر
در این مورد سمپل #C دارید. البته من سمپل وی بی شو پیدا کردم..

به زودی نگاش می کنم.
با سلام به همه دوستان
اول باید عرض کنم که asp.net2 نیازی به نوشتن همه کلاسها تو یه زبان نداره شما همون
کد ها رو کامپایل کنید و عین یه reference صدا کنید و حالشو ببرید
موفق باشید

scorpion_man
پنج شنبه 29 آذر 1386, 13:10 عصر
اما در مورد کدهای sample در مورد encrypt connection String اگه یه خورده جستجو می کردید حتما پیدا می کردید ولی بازم من برای شما جستجو کردم لینکهاشو اینجا میزارم
http://www.codeproject.com/KB/security/encryptstrings.aspx
این کد برای desktop application connection string هست ولی هر دو یکی هستند می تونید تو web هم استفاده کنید البته یه خورده بیشتر جستجو کنید مثالی برای web هم پیدا کنید بازم جستجو کردم برای web هم پیدا کردم اینم برا web
http://www.codeproject.com/KB/database/WebFarmConnStringsNet20.aspx
البته تو این forum هم اگه جستجو کنید بازم پیدا می کنید موفق باشید

scorpion_man
پنج شنبه 29 آذر 1386, 13:15 عصر
دوست عزیز میتونی یه سمپل واسه من بذاری....:لبخندساده:

در ضمن شما میدونی من شماره ارور های دیتابیس رو از کجا میتونم تهیه کنم؟؟؟
عزیزم شماره error دیتا بیسها تو manual هر کدوم وجود داره ولی برا handel کردن error های database نیازی به دونستن اونا ندارید namspace data رو باز کنید exception ها مورد نیاز اونجا هست میتونید هر کدومو خواستید handel کنید البته راههایی هم برا گرفتن خطاهای database وجود داره ولی اینا کارای شما رو را میندازن اگه هم خواستید یه exception جدید برای مورد خودتون بسازید و از کلاس exception ارث بری بکنید
موفق باشید

scorpion_man
پنج شنبه 29 آذر 1386, 13:24 عصر
در ضمن خودتونو زیاد درگیر sample ها نکنید ایده رو بگیرید یه کم کد نویسی کنید تا زیاد بهشون وابسته نشید
و در مورد handle کردن error ها تو global.asax که خیلی راحته ولی بازم اینجا براتون کد میذارم


Select Case Server.GetLastError.Message
Case "Access Deny"
Response.Redirect("~/Login.aspx")
Case Else
Response.Redirect("~/Error.aspx")
End Select

البته این دو مثال بود که براتون نوشتم اگه خواستید میتونید از objec e هم استفاده کنید تا جایی که یادم می یاد متدهایی خوبی داشت
موفق باشید

Behrouz_Rad
جمعه 30 آذر 1386, 11:50 صبح
اولا کلمه ای به نام مقداری در اون پست هست ثانیا از اولم قرار نبود کدهای شما بررسی بشه
این جواب سوال من نبود.
حاشیه نرو و در مورد نحوه ی بررسی "مقداری" از کدهای من توضیح بده.

pourhabibi
شنبه 01 دی 1386, 10:39 صبح
میهش لطف بفرمایید و بگید کانکشن استرینگ رو چطوری انکریپت می کنید.

سپاسگذارم....


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

Dim config As Configuration
Dim section As ConnectionStringsSection
config = Web.Configuration.WebConfigurationManager.OpenWebC onfiguration("~")

section = config.GetSection("connectionStrings")

If section.SectionInformation.IsProtected Then
Else
section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider")
EndIf


config.Save()

el_abdollahi
شنبه 01 دی 1386, 12:33 عصر
میشه بیشتر و بهتر توضیح بدین .

pourhabibi
شنبه 01 دی 1386, 12:46 عصر
با سلامی دوباره
اما در مورد این دوستمون که باید بگم UrlReWriting هست که احتمالا re رو فراموش کردن
کلا عمل UrlReWriting به عملیات گرفتن کلیه درخواستها به سرور و بازنویسی درخواستها
عمل UrlReWriting گفته میشه که با هندلهای Begin_Request ,... گرفته میشه یعنی کلا از کلاسهای HttpRequest ارث بری دارن و باعث میشه تمامی آدرسها به صورت مجازی تعریف بشن یعنی user هرگز آدرسها دقیق و صفحات شما رو نمیبینه و شما با بازنویسی این آدرسها و وتبدیل آدرسهای مجازی به آدرسهای واقعی کارتون رو انجام میدید
البته این عملیات تو IIS به خوبی apache و سرورهای لینوکس خوب Support نمیشه یعنی شما برای هندل کردن درخواستهاتون حتما باید پسوندهای ارسالی از aspx,ashx,asax,... تشکیل شده باشه و نمیتونید پسوندهای gif,jpeg,...رو هندل کنید ولی میتونید با تغییر پسوندهاشون تو آدرس دهی این کار رو هم انجام بدید بالاخره این راه هم چندین بار تو چند پروژه تست شده و خیلی خوب جواب داده و مطمئن هست

سلام
ممنون از توضیحاتتون. فقط اینکه اگه مثلا من یه url به صورت زیر داشته باشم، چه طور بای این رو rewrite کنم؟ اصلا لازمه که همچین url هایی rewrite بشن؟ لطفا یکم راهنماییم کنین
http://something.com/FrmAmaniRequestDetailFrame.aspx?Request=1&RequestRow=1&BranchNumber=150&Status=New&ProductCode=1=

cybercoder
شنبه 01 دی 1386, 12:55 عصر
در مورد نحوه ی بررسی "مقداری" از کدهای من توضیح بده

خیلی دلت می خواد که بگم Nikto نمی تونه کدهای ASP.NET رو چک کنه نه ؟

pourhabibi
شنبه 01 دی 1386, 13:50 عصر
میشه بیشتر و بهتر توضیح بدین .


توی form load event برنامم این کد ها رو می نویسم. وقتی که برنامه یک بار run بشه Connection string نوشته شده درweb config به صورت encode شده در می یاد

el_abdollahi
شنبه 01 دی 1386, 14:49 عصر
خیلی ممنون . فقط زیر این تگ ها وارنینگ میده . بعدا که باعث مشکل خاصی نمیشه ؟

<connectionStringsconfigProtectionProvider="DataProtectionConfigurationProvider">
<EncryptedData>

pourhabibi
شنبه 01 دی 1386, 14:53 عصر
خیلی ممنون . فقط زیر این تگ ها وارنینگ میده . بعدا که باعث مشکل خاصی نمیشه ؟

<connectionStringsconfigProtectionProvider="DataProtectionConfigurationProvider">
<EncryptedData>


والا چه عرض کنم، واسه من که مشکلی پیش نیومده ان شاءالله که واسه شمام پیش نمی یاد

el_abdollahi
یک شنبه 02 دی 1386, 08:22 صبح
معذرت می خوام ولی وقتی پروژه روی یه کامپیوتر دیگه بردم . نتونست به کانکشن استرینگ مقدار بده و از خطوط بالا اررور گرفت . آیا باید عمل انکریپت رو روی هر کامپیوتر انجام بدیم ؟

hamed_bostan
یک شنبه 02 دی 1386, 10:23 صبح
یه مطلب خیلی ساده هم که بهش اشاره نشد بابت امنیت hash کردن پسورد ها توی دیتابیس هست که اکثر دوستان میدونن

pourhabibi
یک شنبه 02 دی 1386, 12:58 عصر
معذرت می خوام ولی وقتی پروژه روی یه کامپیوتر دیگه بردم . نتونست به کانکشن استرینگ مقدار بده و از خطوط بالا اررور گرفت . آیا باید عمل انکریپت رو روی هر کامپیوتر انجام بدیم ؟

نه لزوما. شاید connectin string درست set نشده یا اینکه وقتی شما داری روی یک کامپیوتر دیگه برنامتو اجرا می کنی ، باید connection string رو متناسب با مسیر sqlروی اون pc تنظیم کنی دیگه... وگر نه که شاید مشکل از جای دیگست. چو من که ازین روش استفده کردم و هیچ مشکلیم نبوده

mahmoodjoon
یک شنبه 02 دی 1386, 21:18 عصر
سلام
من تازه وارد این انجمن شدم اما از قبل مطالب اون رو دنبال می کردم.

ممکنه که یکم درباره ی urlReWriting در وی بی توضیح دهید. یعنی اینکه چگونه می توان اینکار را در وی بی انجام داد؟

ممنون

mehrdad201
یک شنبه 02 دی 1386, 23:54 عصر
تو سایت مایکروسافت یه فیلم در این مورد داره

بگردی پیدا می کنی.

ظرفیتش یه مقدار بالاست فقط

pourhabibi
دوشنبه 03 دی 1386, 07:32 صبح
تو سایت مایکروسافت یه فیلم در این مورد داره

بگردی پیدا می کنی.

ظرفیتش یه مقدار بالاست فقط

سلام
میشه لطف کنین لینکشو بذاین اینجا؟! من گشتم ولی نتونستم پیداش کنم

scorpion_man
سه شنبه 04 دی 1386, 11:03 صبح
سلام
ممنون از توضیحاتتون. فقط اینکه اگه مثلا من یه url به صورت زیر داشته باشم، چه طور بای این رو rewrite کنم؟ اصلا لازمه که همچین url هایی rewrite بشن؟ لطفا یکم راهنماییم کنین
http://something.com/FrmAmaniRequestDetailFrame.aspx?Request=1&RequestRow=1&BranchNumber=150&Status=New&ProductCode=1=
با سلام دوست عزیز
باید عرض کنم خدمتتون که خیلی جاهاش میشه استفاده کرد اول باید به چند نکته اشاره کنم
در urlrewriting اولین کاری که شما انجام میدید دسته بندی منطقی querrystring هاتون هست
باید اول ببینید کدوم querrystring در اغلب صفحات وجود داره و اونو وارد آدرس صفحات بکنید قابل توجه کسانی که از portal ها استفاده میکنند که نام querry ها تغییر نمی کنن اما در مورد منافع استفاده از urlrewriting که توپست بعدی چندتا شو نام خاهم برد شما میتونید مثلا url رو اینطوری rewrite کنید
FrmAmaniRequestDetailFrame.aspx?Request=1&RequestRow=1&BranchNumber=150&Status=New&ProductCode=1


FrmAmaniRequestDetailFrame.aspx/1/150/18/

البته اینجا بهم ریخته نوشته ولی میتونید querrystring ها رو به صورت آدرس مستقیم در بیارید
موفق باشید

scorpion_man
سه شنبه 04 دی 1386, 11:08 صبح
اما در مورد دوستانی که هنوز با connectionstring encoding مشکل دارن من دو تا نمونه عملی رو لینکشو تو صفحه 2 براتون گذاشتم دوستان متاسفانه همه پستها رو نمیخونن هم برای web هست هم برای desktop application
موفق باشید

scorpion_man
سه شنبه 04 دی 1386, 11:16 صبح
اما در مورد مزایای استفاده از urlrewriting
1- ایندکس شدن بهتر صفحات در موتورهای جستجو
2-مخفی کردن آدرسهای اصلی و پوشه های سایت از دید بازدید کنندگان
3-که به نظر من مهمتر از همه هست چک کردن querrystring ها با استفاده از کلاس regex
که همونطور که میدونید اصول urlrewriting استفاده از کلاس regex هست که با استفاده از این تکنولوژی میتونی querrystring هارو زمان request یک بار چک کنید که این به صورت زیادی جلوگیری خواهد کرد از querry injection مثلا وقتی شما می خواهید شماره رکورد رو به صورت querry در آدرس بگیرید میتونید با یک reqular expression ساده فقط عبارات number رو filter کنید و به بقیه request ها پاسخ ندید که به نظر من خیلی مهم هست
موفق و پیروز باشید

pourhabibi
چهارشنبه 05 دی 1386, 10:46 صبح
با سلام دوست عزیز
باید عرض کنم خدمتتون که خیلی جاهاش میشه استفاده کرد اول باید به چند نکته اشاره کنم
در urlrewriting اولین کاری که شما انجام میدید دسته بندی منطقی querrystring هاتون هست
باید اول ببینید کدوم querrystring در اغلب صفحات وجود داره و اونو وارد آدرس صفحات بکنید قابل توجه کسانی که از portal ها استفاده میکنند که نام querry ها تغییر نمی کنن اما در مورد منافع استفاده از urlrewriting که توپست بعدی چندتا شو نام خاهم برد شما میتونید مثلا url رو اینطوری rewrite کنید
FrmAmaniRequestDetailFrame.aspx?Request=1&RequestRow=1&BranchNumber=150&Status=New&ProductCode=1


FrmAmaniRequestDetailFrame.aspx/1/150/18/

البته اینجا بهم ریخته نوشته ولی میتونید querrystring ها رو به صورت آدرس مستقیم در بیارید
موفق باشید

:خجالت: خیلی ببخشیدا! ولی چطوری می تونم url خودمو این طوری که شما نوشتین rewrite کنم؟ بعد چه جوری تو صفحه مقصد از پارامترای ارسالی می تونم استفاده کنم؟

ببخشیدا! ولی میشه کدشو واسم بذارین؟:خجالت:

scorpion_man
چهارشنبه 05 دی 1386, 14:47 عصر
:خجالت: خیلی ببخشیدا! ولی چطوری می تونم url خودمو این طوری که شما نوشتین rewrite کنم؟ بعد چه جوری تو صفحه مقصد از پارامترای ارسالی می تونم استفاده کنم؟

ببخشیدا! ولی میشه کدشو واسم بذارین؟:خجالت:
با سلام به همه دوستان
ببینید دوست عزیز شما قرار نیست کاری بکنید شما اول یک dll یا کلاسی که خودتون نوشتین یا از sample هایی که نوشتن که قبلا هم تو همین تاپیک بحث شده import میکنید تو پروژه بعد handle هاشو میذارید تو web.config البته اینا یا بحث شده یا تو sample ها واضح هست نیازی به توضیح نیست بعدش مییایید یه section تو web.config میذارید به فرض مثال


<RewriterRule>
<LookFor>~/(\w+)/(\w+)/Default.aspx</LookFor>
<SendTo>~/Default.aspx?name=$1&amp;lastname=$2</SendTo>
</RewriterRule>

البته این کلمات کلیدی که اینجا به کاربرده شده فرق میکنن و بسته به نظر برنامه نویس کلاس تعریف میشن و از یک کلاس به کلاس دیگه تغییر میکنن به هر حال
دیگه حالا شما کاری با بقییه چیزا نداری شما عین معمول کارتونو انجام میدید فقط تو redirect یا اعمالی که با آدرس بار انجام میدید اون قوانینی که تعریف کردید رو اعمال می کنید
موفق و پیروز باشید

ayani2002
چهارشنبه 05 دی 1386, 15:16 عصر
با سلام به همه دوستان
ببینید دوست عزیز شما قرار نیست کاری بکنید شما اول یک dll یا کلاسی که خودتون نوشتین یا از sample هایی که نوشتن که قبلا هم تو همین تاپیک بحث شده import میکنید تو پروژه بعد handle هاشو میذارید تو web.config البته اینا یا بحث شده یا تو sample ها واضح هست نیازی به توضیح نیست بعدش مییایید یه section تو web.config میذارید به فرض مثال


<RewriterRule>
<LookFor>~/(\w+)/(\w+)/Default.aspx</LookFor>
<SendTo>~/Default.aspx?name=$1&amp;lastname=$2</SendTo>
</RewriterRule>

البته این کلمات کلیدی که اینجا به کاربرده شده فرق میکنن و بسته به نظر برنامه نویس کلاس تعریف میشن و از یک کلاس به کلاس دیگه تغییر میکنن به هر حال
دیگه حالا شما کاری با بقییه چیزا نداری شما عین معمول کارتونو انجام میدید فقط تو redirect یا اعمالی که با آدرس بار انجام میدید اون قوانینی که تعریف کردید رو اعمال می کنید
موفق و پیروز باشید


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

pourhabibi
چهارشنبه 05 دی 1386, 15:22 عصر
با سلام به همه دوستان
ببینید دوست عزیز شما قرار نیست کاری بکنید شما اول یک dll یا کلاسی که خودتون نوشتین یا از sample هایی که نوشتن که قبلا هم تو همین تاپیک بحث شده import میکنید تو پروژه بعد handle هاشو میذارید تو web.config البته اینا یا بحث شده یا تو sample ها واضح هست نیازی به توضیح نیست بعدش مییایید یه section تو web.config میذارید به فرض مثال


<RewriterRule>
<LookFor>~/(\w+)/(\w+)/Default.aspx</LookFor>
<SendTo>~/Default.aspx?name=$1&amp;lastname=$2</SendTo>
</RewriterRule>

البته این کلمات کلیدی که اینجا به کاربرده شده فرق میکنن و بسته به نظر برنامه نویس کلاس تعریف میشن و از یک کلاس به کلاس دیگه تغییر میکنن به هر حال
دیگه حالا شما کاری با بقییه چیزا نداری شما عین معمول کارتونو انجام میدید فقط تو redirect یا اعمالی که با آدرس بار انجام میدید اون قوانینی که تعریف کردید رو اعمال می کنید
موفق و پیروز باشید

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

miladr
چهارشنبه 05 دی 1386, 21:34 عصر
اگه قرار بود ثابت باشن و متغیر نباشن که چه احتیاجی به Querystring بود.اینها قابل تغییرند بزار یه مثال بزنم.

<RewriterRule>
<LookFor>~/(\w+)/(\w+)/Default.aspx</LookFor>
<SendTo>~/Default.aspx?name=$1&lastname=$2</SendTo>
</RewriterRule>

اگه از این کد استفاده کنی اونوقت

~/ali/alizade/Default.aspx
برابر

~/default.aspx?name=ali&lname=alizade

و


~/mohamad/mohamadi/Default.aspx
برابر

~/default.aspx?name=mohamad&lname=mohamadi

میشه

scorpion_man
چهارشنبه 05 دی 1386, 22:57 عصر
با سلام به همه دوستان
و با تشکر از دوست عزیزم miladr که پاسخ این سوال رو فرمودند و اوتقدر کامل هست که دیگه توضیحی نمیدم فقط یک نکته رو اشاره کنم در تکمیل پاسخ ایشون که این عبارات (\w+) دستورات regular expresion هستند که این خودش بحثی مفصل تر از rewriteurl هست و خارج از حوصله این بحث
موفق و پیروز باشید

cybercoder
سه شنبه 16 بهمن 1386, 15:20 عصر
خیلی دلت می خواد که بگم Nikto نمی تونه کدهای ASP.NET رو چک کنه نه ؟

ولی (خوشبختانه یا متاسفانه) wikto می تونه !!