Skip to content

Category: programmingSyndicate content

C, PHP, VB, .NET

 PHP Opcache конфигурация

   от C, PHP, VB, .NET


PHP е скриптов език, от което следва, че при всяко зареждане трябва да се извърши процес на компилация. Това, както може да се досетите, губи известно време, което може да се натрупа сериозно при по-натоварени сайтове. Още по-лошото е, че води и до дискови операции – файлът със сорс кода трябва да се прочете от диска, за да бъде компилиран. Тук на помощ идват кеширащите модули – OpCache, APC или Xcache. Идеята при всички е, че се заделя рам памет, в която се пазят готови компилирани скриптове. По този начин, ако някой желае да отвори даден скрипт, който вече е бил отварян и е кеширан, значително ще се ускори времето за изпълнение, защото напълно ще съкрати принципно бавния (от компютърна гледна точка) процес на компилиране. Най-популярният кеширащ механизъм за PHP е Zend Opcache и затова тук ще се спрем именно на неговата конфигурация.

Преди да започна, нека кажа две основни важни неща:

 

C, PHP, VB, .NET

 Clickjacking

   от C, PHP, VB, .NET


Clickjacking е техника, с която ви карат да извършите собственоръчно действие, което не сте желали. Визуално на екрана виждате един обект, но с натискане на левия бутон на мишката върху него вие извършвате съвсем различно действие, а не това, което очаквате. Например отивате на някой уебсайт и виждате видеоклип. Искате да натиснете бутона Play и го правите. Но вместо да сте натиснали Play и клипчето да тръгне, се оказва че сте натиснали върху рекламен банер, който въобще не виждате, натиснали сте Like на някоя статия във Фейсбук, която въобще не сте виждали и т.н.

 

Иван Ванков

 Tutorials.bg

   от Иван Ванков


Е дойде му времето най-накрая!

Първо бе nau4i.me, който по мноoooоого причини не се разви, после бе schoolpedia.org, която бе направена за тест, сега вече аз и партньорите от http://3web-studio.com смятаме, че имаме правилно разбиране как една система за уроци трябва да изглежда и да работи.

Tutorials.bg стартира на 01.06.2017 и е в алфа версия, но основната функционалност вече е налична, както и част от видеата. Постепенно ще се оправят бъгове, ще се добавя функционалност и най-вече учебни материали.

Какви са основните концпеции на сайта:

 

C, PHP, VB, .NET

 Резултати 2017

   от C, PHP, VB, .NET


Изпитът по ПТСК редовна сесия ще се проведе на 15.05.2017 г. (понеделник), 08:00 ч., зала 1152. 

Освободени от изпит с отличен 6 (подчертаните получават специална похвала за добре подготвен практически пример по време на защитата):

 

C, PHP, VB, .NET

 Blind SQL Injection

   от C, PHP, VB, .NET


Когато се говори за blind sql injection се има предвид, че атаката се извършва без атакуваната страница да дава грешка. Вместо това хакерът вижда съвсем нормален отговор, но според него успява да определи дали заявката му е минала успешно или не.

Нека имаме база от данни със статии:

CREATE TABLE articles(
   id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
   content TEXT NOT NULL
);

Даден е следният скрипт, който отваря дадена статия според нейното id:

 

C, PHP, VB, .NET

 temp: ОСУП упр. 9

   от C, PHP, VB, .NET


htdocs <<< упражнение 5 (хеширане и key stretching)

htdocs <<< упражнение 6 (с добавен auto-login cookie)

htdocs <<< упражнение 7 (различни видове xss атаки + защита)

htdocs <<< упражнение 8 (xsrf атаки + защита с token)

htdocs <<< упражнение 9 (xsrf + captcha)

 

C, PHP, VB, .NET

В долната задача демонстрирам употребата на String.format(). Дадена е следната задача: по подадено число N, да се отпечата чрез стандартния изход матрица с размерност NxN със звезди по диагоналите и празни интервали за останалите елементи.

Обикновено хората започват да търсят решение чрез вложени цикли, например:

 

C, PHP, VB, .NET

 Виртуални колони

   от C, PHP, VB, .NET


С MySQL 5.7.7 се появава още една сериозна добавка – виртуални колони в таблици. Друг възможен адекватен превод би бил „изчислими колони“ – такива, които се генерират динамично на базата на друга съществуваща информация. Нека разгледаме най-простия пример – дадена е следната таблица:

CREATE TABLE people(
 id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
 username VARCHAR(50) NOT NULL,
 password VARCHAR(255) NOT NULL,
 firstname VARCHAR(255) NOT NULL,
 lastname VARCHAR(255) NOT NULL
);

INSERT INTO people(username, password, firstname, lastname)
VALUES ("ivan", "123456", "Ivan", "Ivanov"),
       ("petar", "password", "Petar", "Petrov"),
       ("maria", "asdfqwer", "Maria", "Todorova");

Ако искаме да извадим пълното име на потребител с username „petar“, то би трябвало да направим следната заявка: