Допълнителни материали за файлове и сесии (телерик академия)

Това е видео с допълнителни материали към курса в Телерик академия. Тук ще разгледаме някой допълнителни неща за файловете и сесиите.

28 мнения по „Допълнителни материали за файлове и сесии (телерик академия)

  1. niki

    Много полезно видео (както и всички останали). Благодарим!

    borkoZliq дистрибуцията е Kubuntu.

  2. Фьт Дхюс

    Че е КДЕ 4, то е, ама не е сигурно за Кубунтутото 😉 Е то е, ама принципно.

    Все пак да кажем, че не е добра идея да се сменя името на сесийна бисквитка. Много народ са ограничили приемането само до такива. И като му сервираш нещо странно на интернет-навигатора и потребителя ще те отсвири.

    Иначе, както е обикновено, Иван ни поднесе урок от висока класа. Рядък талант.

  3. jazzman

    Иначе, както е обикновено, Иван ни поднесе урок от висока класа. Рядък талант.

    Айде, айде малко по скромно 🙂 Изказвайки се по този начин или не пишейки нищо от уважение към него, не правите добра услуга на никого който чете и иска да научи нещо тук в този блог. Аз съм изумен от това колко малко градивна критика има към неговите лекции писани до тук от по напредналите потребители.

    Според мен, той трябваше да започне със следното и това да се запомни от всеки начинаещ:

    За пренос на информацията м/у страниците има 3 основни начина:

    1. Предаване на стойности през HTML FORM и нейните методи ( POST, GET) и новите в HTML5 ( PUT, DELETE) и да се покаже съвсем сбито какви са разликите м/у тях и в кои ситуации единият е по-подходящ от другия.

    2. Предаване на стойности през URL. Също на кратко да се дадат няколко примера, какво представлява URL, как браузъра третира някои специални символи, как може да се енкодне URL-a в страницата и добрите практики.

    3. Предаване на стойности през SESSION. Тук той навлезна в детайли в които честно казано аз лично виждам смисъл да бъдат обяснявани на начинаещите и в крайна сметка от много обяснния се загуби основната идея.

  4. Фьт Дхюс

    А Ве тия PUT, DELETE ги знам от ранните две хилядни, когато на мода излезе жабата, не може да са ново нещо.

  5. jazzman

    Ами дай ми пример с тях в HTML4 или XHTML, поне аз никъде не съм ги срещал в документациите им, ама може и да бъркам 🙂

  6. jazzman

    Да не би пък да са преди HTML4 и аз да се бъркам, но съм ги срещал в Silex (съвременен фрейм) и затова да съм остамал с впечатлението, че са поддържани в HTML5, но…..човек се учи цял живот.

  7. kg

    Забрави скритите полета на формите, с които по-лесно и сигурно се проверяват и пращат данни 😉

  8. Фьт Дхюс

    Да определено скритите полета нищо не дават на сигурността, точно обратното.

  9. jazzman

    Да определено скритите полета нищо не дават на сигурността, точно обратното.

    Какво имаш в предвид под, „точно обратното“ ?

    Че не дават повече сигурност съм съгласен, но те са често употребяван метод, когато се налага да се ъпдейтва определена информация към базата да речем вързанa към определено ID.

  10. gatakka Автор

    Скритите полета нито повишават, нито намалят сигурността, освен ако не сте достатъчно глупави, да пишете в скрити полета някакви важни неща, като сесии, пароли и подобни.

  11. kg

    Скритите полета във формите могат да се ползват за навигация между страниците вместо сесиите.
    Помагат за намаляване на твърде много сесии и проверки към базата данни са излишни, дори когато не е нужно.
    Сигурност за БД:
    – ползване на изгледи вместо директна работа с таблици, система за привилегии вместо достъп до реални данни, транзакции вместо отделни команди,
    – различни имена на променливите от тези на колоните
    – запазване на сесииния идентификатор в база данни в кодиран вид, също и паролите
    Сигурност за РНР
    – изчистване на всички ползвани променливи от глобалните масиви
    – качване на файлове в директории, който не са достъпни за всеки в уеб
    – различни начини за идентификация на потребителите (не е достатъчно само сесии)
    – проверка на всичко от вход и изход от БД
    – използване на @ пред всичко, което дава стойност,
    – подходящо представяне на съобщенията за грешки и пренасочване
    Пример getimagesize – показва дали даден файл е изображение и без излишни проверки
    – други

  12. jazzman

    Ти няма как да направиш навигация м/у страниците със скрити полета ако няма форма, поне аз не знам.
    В дадена ситуация формата е по-удачният вариант, в друга предаване по URL, в трета през сесии. Има и още един за който се сещам в момента през редиректване на I/O, но това е малко по-различно от споменатото до тук
    Какъв начин ще избереш зависи от дизайна на апликейшъна.

  13. kg

    jazzman данни се съхраняват не само на клиентския компютър, а и на сървъра
    Може да се съхраняват и извеждат не само от глобалните масиви на формите, а и да се ползват файлове, бази данни и т.н.
    С повече усилия ще си направиш и с тях навигация между страниците
    или в даден момент могат да служат за потвърждение на проверки

  14. gatakka Автор

    един съвет, пиши си системата така, че ако акритите полета бъдат компрометирани това да не се отрази на сигурността на системата

  15. jazzman

    @kg, нещо не си разбрал добре пост №5! Там не говоря къде е най-добре да бъдат съхранени данните, а начините по които биха могли да бъдат достъпени ако се намират на различни места в/у сървъра. Кое не е ясно в този мой постинг, за да се опитам да хвърля повече светлина в/у него?

  16. kg

    jazzman всичко, което се съхранява на клиентския компютър по подразбиране се смята за несигурно.
    Ако потребителят реши да си спре бисквитките от сесията, няма работещ сайт, а в случая скритите полета продължават да работят за навигация.

    gatakka под сигурност се разбира и добре оптимизиран сайт, т.е. твърде много връзки към базата данни са излишни и водят до грешки и забавят сайта, по-лесно е за навигация да се ползват скрити полета например със стойност случайно генерирано число за дадения скрипт, не е важно кои страници е посетил потребителят, каквото е избрал може да се въведе в изглед, а не в реална таблица например, да има ограничени права за достъп до БД, също и за максимум въведени записи за определено време например, преди да ги потвърди реално в поръчка, където вече започват реалните проверки за сигурност

  17. jazzman

    @KG, какво ще стане ако потребителя реши да браузва без javascript? Ами тези, които ползват вехти копия на IE?
    Никога и никъде не съм казвал, че сигурното място за съхранение на информацията е на клиентската машина. Единственото сигурно място е сървъра, там където клиента не може да пипа, поне не и с познатите конвенционални средства. Ние като хора занимаващи се с уеб програмиране не можем и не бива да угаждаме на капризите на всеки един потребител. Колкото повече им се угажда, пропорционално се увеличават и рисковете в сигурноста и би могло да се изпадне в ситуация – “Царят е гол”
    @ff: Не знаех, че си момиче.

  18. kg

    Е, хакерът не е обикновен потребител,
    а ми се е случвало просто да копирам в хостинг план кода на един безплатен сайт и дори без да го стартирам обърка всичко с останалите сайтове и те престанаха да работят, докато не изтрих въпросния „готов продукт“ – Затова 😉

  19. jazzman

    E…причините за това могат да бъдат много, но най-вероятно е имало някъде .htaccess file в root директорията и като си копирала новите файлове да си презаписала старият скрит файл или да си сложила техен .htaccess. Всеки сървър било то, web, ftp, nfs, samba и т.н….има error logs файлове, четеш и търсиш причината, ако няма грешки значи има нещо гнило в логиката някъде.

  20. Фьт Дхюс

    Кои данни да се съхраняват при клиента? За сесия? Това е ужасна идея. И по принцип е ужасна идея да се пази при клиента, каквото и да било и да се изпълнява при него, каквато и да е логика. Това е територия върху която не упражняваш никакъв контрол.

  21. nikola796

    Относно функцията session_set_cookie_params() ми изникна следния проблем ако я използвам IE и Chrome не приемат сесията и ме връщат към логин формата. Някакво решение да ми предложите ?

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *