تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 15

نام تاپيک: امنیت در asp.net دیتا بیس با xml

  1. #1
    داره خودمونی میشه ebse's Avatar
    تاريخ عضويت
    Jan 2011
    پست ها
    125

    12 امنیت در asp.net دیتا بیس با xml

    سلام به همه خواهرا و برادرا
    می خواستم درباره سه تا چیز سوال کنم

    1-آیا از فایلxmlمیتوان به جای دیتابیس استفاده کرد (در asp.net) و اگر میشه امنیتش چطوره؟

    2-امنیت سایت چجوریاست منظورم اینه که چه چیزایی امنیت سایت رو به خطر میندازه اگه میشه با راه حل جواب بدید

    3-یه کوچولو هم درباره webconfing توضیح بدید
    شنیدم امنیت فایل ها به این قسمت مربوط میشه
    اگه درسته دربارش یه خورده توضیح بدید

    ممنون از همه

  2. #2
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    امکان استفاده از xml به عنوان منبع اطلاعات وجود دارد و مثلا درحال حاضر در بیشتر نرم افزارهای معروف تحت وب ASP.Net برای گذاشتن قابلیت چند زبانی (با وجود اینکه امکان مستقلی به این منظور داریم) از فایلهای Xml استفاده میشود و هر زبان یک فایل Xml دارد که متون و پیغام ها و برچسب ها و... را در خود ذخیره کرده.
    سایت یکبار (در اولین درخواست) فایل Xml را خوانده و ترجمه میکند و از آن ببعد از محتویات RAM استفاده میکند.

    =====

    ولی برای ذخیره مقادیر و اطلاعات و... Xml گزینه مناسبی نیست، انهم در سایت!!!!

    اولاً انکه فایلهای Xml بجز پارسرهایشان هیچ پشتیبانی دیگری ندارند و مثلاً در نوشتن اطلاعات خودتان باید موارد چندریسمانی را بلد بوده و به دقت رعایت کنید، وگرنه اگر دو ریسمان همزمان بخواهند فایل را ذخیره کنند یا به خطا میخورد و یا اطلاعات اولی از بین میرود و...

    دوماً سرعت انتقال اطلاعات از/به Xml بسیار کم است و هزینه Parse را به همراه دارد.

    برای دیتابیس در حجم تراکنش بسیار کم شاید Access مناسب باشد (حداقل از Xml خیلی بهتر است) و در باقی موارد بهترین گزینه Sql Server است.

    =====

    در خصوص امنیت هم اگر فایلهای Xml و mdb شما در پوشه App_Data در ریشه سرور قرار داشته باشند، در مجموع قابل قبول است.
    (((
    گرچه Xml اگر بعنوان دیتابیس مدنظر شما نباشد و اطلاعات مهم به نوعی محرمانه در ان نباشد و مثلآً حاوی اطلاعات استایل و زبان و... باشد، هر جای دیگری هم باشد، مشکل امنیتی ایجاد نمیکند و مسئله ای ندارد.
    )))

    =====

    الف)
    فایل web.config فقط تنظیماتی را نگه میدارد که میتواند مشخص سازد چه افراد یا چه گروه های کاربری حق دسترسی به صفحات و مکان های سایت را دارند.
    اگر فردی اجازه دسترسی نداشته باشد، خودکار او را به صفحه Login منتقل خواهد کرد.

    این موارد معمولاً در بخش های authorization و authentication فایل فوق قابل تنظیم است.

    مثلاً به سمپل زیر دقت کنید:
    support.h02.ir/fwlink/?LinkId=1002214567

    در Sample1 خواهید دید که (الی الحساب کاری به کدهایش نداشته باشید!) اجازه برای دسترسی به پوشه administrators و users تایین شده است و اگر شما بدون لوگین صفحات داخل این دو پوشه را فراخوانی کنید به فرم Login منتقل خواهید شد و البته پس از لوگین و درصورت کسب مجوز خودکار به صفحه ای میخواستید بروید (و آن زمان اجازه اش را نداشته اید) برخواهید گشت.

    این چک کردن مجوز و رفت و برگشت از/به فرم لوگین را ASP.Net برایتان خودکار و با توجه به web.config انجام میدهد.


    ب)
    فایل web.config بجز موارد گفته شده، تنظیمات متعدد دیگری مرتبط با شیوه های رمزنگاری و اعتبارسنجی درخواست ها و ف-ل-ت-ر کردن درخواست ها براساس حجم بایتی و زمان اجرا کد و... و... و... را هم نگاه میدارد که روی موارد متعدد کارکردی سایت تاثیر خواهد گذاشت.

    موفق باشید.

  3. 2 کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده اند


  4. #3
    داره خودمونی میشه ebse's Avatar
    تاريخ عضويت
    Jan 2011
    پست ها
    125

    پيش فرض

    اگه من یه متغیر از نوع arraylist بصورت static درست کنم و اطلاعاتم
    را به صورت یک object در این آرایه قرار داده و در آخر آن را ذخیره کنم
    فکر کنم مشکلی نداشته باشه شاید اون قضیه چند ریسمانی هم
    اگه درست فهمیده باشم چیه حل بشه

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

  5. #4
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    مشکل چند ریسمانی قابل حل است ولی واقعاً استفاده از xml به عنوان دیتابیس از نظر بازدهی غیر قابل تصور است...

    حالا بفرض هاست شما SqlServer را پشتیبانی نکند (که معمولاً با مبلغی بالاتر این کار را انجام میدهند) حداقل چرا از Access استفاده نمیکنید؟

    مشکلتان چیست؟ شما هدف نهایی، سایتی که میخواهید بسازید و مشکلتان را بیان کنید تا بتوان بهتر راهنمایی کرد.
    اگر زمانی هم بخواهید دیتای XML ای داشته باشید، میتوانید در همان لحظه و برای همان کار خاص بخش مشخصی از اطلاعات را به فرمت دلخواه به XML تبدیل کنید. (مثل تولید Runtime برای RSS در سایتها و...)

    بحرحال و در نهایت استفاده از XML به عنوان نوعی دیتابیس کوچک و ReadOnly از نظر من منطقی است (مثل نگه داری تنظیمات زبان و استایل و...) ولی استفاده از ان بعنوان دیتابیس اصلی برای ذخیره محتویات (مثل مطالب مندرج از طرف اعضا و پیام ها و اخبار و...) بنابر تجریبیات من منطق و توجیحی فنی ندارد.

    موفق باشید.

  6. #5
    داره خودمونی میشه ebse's Avatar
    تاريخ عضويت
    Jan 2011
    پست ها
    125

    پيش فرض

    سلام
    من شنیدم که میگن بهترین دیتابیس برای سایتها و نرم افزار ها Xml هست . البته یه نرم افزاری رو هم دیدم که با xml کار میکرد . این نرم افزار در مدت زمانی خاصی به صورت Random یک پیام مثلا یه حدیث یا شعر که در دیتا بیس بود رو نمایش می داد . و قسمتی داشت که میشد ژیام بهش اضافه کرد .
    در ضمن من خیلی با دیتا بیس ها وارد نیستم و اتفاقی Xml آشنا شدم . البته دنبال Sql هم رفتم نه اینکه نرفتم ولی هیچی ازش نفهمیدم. در این باره هم اگه کمکم کنید ممنون میشم
    مر30

  7. #6
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    همانطور که قبلاً هم گفتم ...
    XML فایل بانک اطلاعاتی نیست، XML برای مواردی که حجم اطلاعات کم و عموماً اطلاعات ReadOnly است، مناسب است.

    بعنوان مثال ...
    برای همان ذخیره استایل و زبان و... در برنامه دسکتاپی و وبی.
    در یک برنامه ذخیره دفتر تلفن دسکتاپی!
    همین موردی که گفتید که سایت از بین چند جمله آماده یکی را به رندم انتخاب کند.
    و...

    برای 10 سطر و 100 سطر و 1000 سطر و فوق فوقش خیلی دست بالا ببینیم 10000 سطر خوب است ولی استفاده از XML برای ذخیره همه اطلاعات یک سایت یا برنامه کامل، بیشتر به طنز و جوک برنماه نویسی شبیه است!!!

    مثلاً در یک تالار گفتگو (مثل همین که الآن در مرز 6 میلیون پست دارد) یا یک سایت خبری یا فروشگاه اینترنتی و... و... و تقریباً هر برنامه درست و حسابی که حجم اطلاعات زیادی داشته باشد، استفاده از XML غیر ممکن است.

    =====

    مثالی از یک مورد اشکال:
    اگر برنامه شما بخواهد اطلاعاتی را از یک XML بخواند، یا باید کل ان را در RAM ریخته باشد یا باید کل فایل را از اول بخواند تا به ان دیتای مورد نظر برسد.
    مثل اگر فایل XML ای داشته باشید که 500MB باشد!!!! (خودم باور نمیشود همچین چیزی را میگویم!)
    500MB برای دیتابیس های رابطه ای مثل SQL Server و Oracle و MySQL و Postgre و... یک عددد کوچیک و ناقابل است.
    ولی فکر به ان هم برای XML در ذهنم نمیگنجد!

    برای خواندن همچین اطلاعاتی در XML برنامه شما یا باید کل ان را در RAM بریزد که این یعنی مصرف 500MB از RAM!!!
    اغلب وب سایتهایی روی سرورهای Share شده هستند فقط حق استفاده چند ده مگ RAM دارند!
    خیلی از سرورهای مجازی و اختصاصی هم 256 تا 1G حافظه دارند.
    حتی در رایانه شخصی هم یک برنامه تک نمیتواند همچین حافظه ای را از سیستم عامل درخواست کند.
    پس خود سیستم عامل و سایر برنامه ها چه کنند؟!!!

    یا باید از اول 500M شروع کنید فایل را بخوانید (آنهم با Parse متنی که عملیاتی کند است!) تا مثلاً پس از Parse کردن 400M اطلاعاتتتان را پیدا کنید!!!
    این عمل اگر بخواهد برای هر موردی تکرار شود، باید یک دست لحاف و دشک هم به مشتری های برنامه یا ساییتان بدهید تا در استفاده از برنامه شما راحت باشند!!!!

    =====

    این فقط یک مثال بچه گانه و یک مورد کوچک مشکل بود ...
    من فرصت توضیح ندارم ورگنه تا صفحات متعدد میتوانستم برایتان مشکل بیان کنم ....
    ولی بانک های اطلاعاتی دیتابیسی رابطه ای برای پوشش این وضعیت های سنگین ایجاد شدند.
    قول هایی مثل SQL Server و Oracle یا همین MySQL و...

    =====

    نتیجه:
    اگر با عدد و رقم کارتان راه میافتد، بنظر شخصی من استفاده از XML هایی با حجم کمتر از 1MB در جای خودش و با حصول شرایط خوب است ولی بیشتر از ان مجاز نیست.
    (حال شاید فرد دیگری این عدد 1MB را بگوید 100KB و یکی بگوید 10MB ولی یقیناً کسی 100MB نخواهد گفت!)

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

    =====

    تبادل اطلاعات بین برنامه های مختلف از زبان و پلتفرم مختلف:
    راه نگه داری اطلاعات کامل و حجیم همان دیتابیس رابطه ای است ولی برنامه شما میتواند در مواردی و برای بخش کوچکی از اطلاعات و به منظور تعامل با سایر برنامه ها خودش XML را همان لحظه تولید کند و ارائه بدهید.

    مثلاً برنامه تالار گفتگو شما مطالب و تاپیک و پست ها را در دیتابیس نگاه میدارد (در اینکه شکی نیست) ولی برنامه تان میتواند قابلیتی داشته باشد که فقط مطالب 24 ساعت گذشته را در قالب XML و مثلاً با نام RSS (که شاید در سایتها دیده باشید) برای تعامل با سایر برنامه به کاربرانش ارائه دهد.
    این کار روی حجم بسیار کوچک و محدود شده ای از اطلاعات و به منظور تعامل و بده و بستان با سایر برنامه ها استفاده میشود و برنامه میتواند از یک بخش بسیار کوچک شده ای از دیتابیس خودش خودکار این فایل XML (مثلاً RSS) را تولید و عرضه کند.

    =====

    موفق باشید.

  8. این کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده است


  9. #7
    داره خودمونی میشه ebse's Avatar
    تاريخ عضويت
    Jan 2011
    پست ها
    125

    پيش فرض

    سلام
    واقعا ممنون اصلا حواسم به این حجمی که در رم اشغال میکنه نبود
    خیلی لطف کردید حالا یه سوال کوچیک کدام یک از دیتا بیس ها امنیت قدرت و... بیشتری داره
    اینم بگم من بخاطر این Xml رو میگفتم چون با اکسس خواستم یه بر نامه درست کنم . (منظورم دیتابیسشه )
    یه رشته رو می خواستم وارد کنم (به صورت پیش فرض) از فکر کنم 100 یا کمتر یا بیشتر کاراکتر در هر فیلد از نوع string اش
    نمی شد وارد کنی این دلیل اصلیه انتخاب Xml بود . لطفا بگید که بقیه دیتا بیسها این مشکل رو دارند یا نه
    و بهترینش رو از نظر خودتون انتخاب کنید تا من برم دنبالش و یاد بگیرم
    ممنون

  10. #8
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    ... از فکر کنم 100 یا کمتر یا بیشتر کاراکتر در هر فیلد از نوع string اش نمی شد ...
    Access شاید نمونه ضعیف ترین دیتابیس رابطه ای موجود باشد ولی باز هم از نظر بازدهی و برای ذخیره اطلاعات متنوع با هم زیادتر از XML بهتر است.
    شاید Access ضعیف باشد، ولی مشکلی که بیان کردید بدون شک از عدم اطلاع شما و عدم انجام صحیح این کار بود.
    در Access به راحتی میتوان متن هایی یا حد 255 حرف را در فیلدهای Text و متن هایی تا حد زیر 2 میلیارد را در فیلدهای Memo ذخیره کرد.
    ((البته درست است که هر فیلد میتواند 2 میلیارد را جا دهد ولی کل دیتابیس نهایی و فایل نهایی mdb تان هم نباید از 2GB بیشتر شود.))

    (همین چند روز قبل در تاپیک دیگری گفته بودم که) برای دیدن فهرست محدودیت های Access (تعداد فیلد و جدول و حجم فایل و... و...) دوستان میتوانند در بخش Help اش (Help خود Access2007/2010) عبارت "Access 20XX specification" را جستجو کنند.

    ... بهترینش رو از نظر خودتون انتخاب کنید ...
    برای تحت ویندوز و به طور خاص محیط های برنامه نویسی مثل ASP و یا ASP.Net بدون شک قدرتمندترین و بهترین گزینه MS SQL Server است.

    برای تحت لینوکس و به طور خاص محیط های برنامه نویسی مثل PHP شاید قدرتمندترین گزینه Oracle باشد و بهترین گزینه MySQL است.
    ( MySQL را تقریباً همه هاست ها پشتیبانی میکنند ولی Oracle را هیچ هاستینگی همینطوری ندارد و خود فرد باید برود بخرد و... و یکسری دردسر دیگر ...)

    =====

    با توجه به اینکه در پست اول از ASP.Net نام بردید، بهترین پیشنهاد استفاده از دیتابیس MS SQL Server 2005 است.
    SQL Server 2008 هم داریم و بهتر هم است ولی شرکت های هاستینگ با مبالغ بالاتری SQL Server 2008 را عرضه میکنند (که ناشی از لایسنز گران تر مایکروسافت است).

    به جهت کاهش هزینه و اینکه چه هاست SQL Server 2005 و چه SQL Server 2008 را داشت، باز هم برنامه شما بتواند کار کند، بهتر است شما از امکانات جدید MSSQL2008 استفاده نکنید و برنامه تان را با MSSQL2005 ببندید.
    ( گرچه باز هم هاست های کلاً بدون SQL Server ارزان تر هستند ولی دیگر کاری نمیتوان کرد و داشتن MSSQL2005 دیگر حداقل لازم برای راه اندازی ASP.Net است. )

    توضیحات تکمیلی MS SQL Server 2005/2008:
    - به راحتی در فیلدهایی خاصی میتواند تا 2GB اطلاعات باینری یا متنی را قرار دهید.
    مثلاً به راحتی میتوانید فایلهای jpg و zip و... را هم در دیتابیس تان و در یک فیلد خاص ذخیره کنید. (برای سرورهای Share اصلاً توسیه نمیشود)

    - حجم دیتابیس نهایی میتواند تا بیش از 500,000TB باشد (یعنی نیم میلیون عدد هارد 1TB !) که این حجم را میتواند در داخل چندین رایانه و چندین فایل هم قرار داده و مدیریت کند و هر فایل میتواند تا 16TB شود.
    ( یعنی امکان ذخیره اطلاعات را در چندین فایل و چندرین رایانه دارد که در نحوه استفاده در زبان های برنامه نویسی هیچ تفاوتی ایجاد نمیکند! )

    - دستورات T-SQL این بانک اطلاعاتی در درون خود بانک امکان Parse و یا تولید XML را دارد

    - در دستورات T-SQL این بانک میتوانید از دستورات IF و WHILE و CASE و... استفاده کنید و زبان SQL بسیار پیشرفته و کاملی دارد.

    - سرویس های متنوع با امکانات جالب در دسترس است از جمله FullTextSearch یا Notify و Broker و... و...

    و...
    و...
    و...

    از حوصله توضیح من و خواندن شما خارج است.
    پیشنهاد میکنم حتماً کتاب SQL Server 2008 یا حداقل 2005 ای تهیه کنید و ضمن آشنایی با سینتکس اصلی T-SQL حداقل حداقل حتماً با مفاهیمی View و StoredProcedure و Function و Trigger و CURSOR و Index و... آشنا شوید و بدانید چه هستند و چه طور استفاده میشوند و چه قابلیت هایی دارند.

    (((
    مجدد لازم به ذکر است که سرور های Share که معمولاً ارزان بوده و از طرف هاستینگ ها عرضه میشوند، عموماً محدودیت های بسیار دارند، مثلاً اغلب FullTextSreach خاموش است یا خیلی فضای MSSQL دهند 500MB میدهند.
    که باید قبل از خرید حتماً از هاستینگ تان در مورد حجم بایتی دیتابیس MSSQL که میتوانید بسیازید سوال کنید.
    به همین دلیل و برای آنکه هر کسی بتواند از برنامه ASP.Net شما روی سایتش (با حداقل شرایط قیمیت) استفاده کند، پیشنهاد میشوند که فایل تصویر و zip و... را در دیتابیس ذخیره نکنید.

    ولی اگر سرورشما VPS یا Dedicate باشد (که عموماً گران تر هستند) دستتان باز است و خیلی از محدودیت ها وجود ندارد.
    )))

    موفق باشید.

  11. #9
    داره خودمونی میشه ebse's Avatar
    تاريخ عضويت
    Jan 2011
    پست ها
    125

    پيش فرض

    سلام
    ممنون اگه میشه لینک آموزشی برای Sql Server 2005 رو برام بزارید
    بازم ممنون

  12. #10
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    چند pdf اینگلیسی دارم، ولی pdf فارسی ندارم ...

    البته برای انگلیسی SQL Server Books Online بهترین مرجع است که همراه نسخه های غیر رایگان SQL Server قابل نصب است.

    برای فارسی، که از کتابهایی که من دارم یا از کتابخانه گرفتمو... بهترینش SQL Server کانون نشر علوم بوده.

    nashreoloom.com/ShowBooks.aspx?id=197

    نمیتوان گفت کامل است، ولی میتوان گفت از سایر کتابها خیلی کامل تر و مفصل تر است.

    موفق باشید.

  13. 2 کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده اند


صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •