15 Jul

Mysql и Ruby.

Пользуясь свободным выпавшим мне временем, решил углубить свои знания из Ruby. В следующем скрипте нет ничего особенно сложного, обычный скриптик создающий новую базу данных и добавляющих туда информацию. Короче, задача была такова: создать базу данных некоторых персон куда можно вводить имя, возраст, пол  и соответствующая должность на работе. Работаем избирательно через Mysql. Далее предпологается уже установлено в системе собвстенно Mysql сервер и  Ruby гем. Скриптик будет выглядеть следющим образом:

#Загружаем нужные гемы для работы

require 'rubygems'
require 'mysql'

puts "Welcome to Database Manager Programm!"

#Соединяемся с базой данных
 db = Mysql.connect('localhost','db_user_name','db_user_password','db_name')
 puts "Connected to the Mysql DB"

#Создаем таблицу
db.query("create table people(id integer primary key auto_increment,age integer,name varchar(30),job varchar(50),gender varchar(6))")
#Здесь не забываем добавить auto_increment
#Вводим данные в таблицу
puts "Insert the name, what you wont to add in to the DB:"
name = gets.chomp

puts "Insert the age of this person:"
age = gets.chomp

puts "Insert the gender of this person:"
gender = gets.chomp
puts "Insert the job of this person:"
job = gets.chomp

#Вводим данные
db.query("INSERT INTO people(name,age,job,gender) VALUES('#{name}','#{age}','#{job}','#{gender}')")

#Выводи то что получилось
 begin
  query=db.query('SELECT * FROM people')
  query.each_hash do |h|
  puts h.inspect
 end
end
#Закрываем соединение
db.close

Сохраняем в файле, например mysql.rb и выполняем:

1
$ ruby mysql.rb
05 Feb

PHP-də vaxt

Web proyeklərimizdə tez-tez işlətdiyimiz tarixlər, onlar üzərində əməliyyatlar haqqında bir neçə kəlmə demək istəyirəm. Hər zaman işlətsək də düşünürəm ki, xırda element olduğu üçün çox da üstündə durmuruq və ya php-nin bizə təklif etdiyi minimal variantlarla razılaşırıq.

Vaxt anlayışı PHP-də date() funsiyası ilə daxil edilir. Strukturu

1
string date ( string $format [, int $timestamp ] )

şəklində müəyyən olunur. php.net-dən daha ətrafı oxuya bilərsiniz.

Vaxtla əlaqəli ki məsələyə nəzər salmaq istəyirəm. Onlardan biri MySQL-dəki cədvəlimizdə DATE (DATETİME) tipli xanasında olan vaxtı daha oxunaqlı hala salmaqdır.

İkinci məsələ isə vaxtı milliləşdirməkdir.
Başlayaq.

Read More

25 Dec

“Saytımızda kim var, kim yox” və ya qonaqlarımızın gəliş-gedişini necə izləyək?

Əsasən sosial şəbəkə, tanışlıq, çat kimi insanların ünsiyyət üçün müraciət etdikləri saytlarda hazırda saytda neçə nəfərin olması, istifadəçilərin siyahısı, gün ərzidə qonaqların sayı və s. Kimi göstəricilərin olması vacib sayılır. PHP haqda növbəti postumu da elə bə mövzuda yazmağa qərar verdim. Düşünürəm ki, maraqlananlar olacaq. Yenə də dərinliklərə getmədən işin əsas prinsiplərinin nədən ibarət olduğunu bildirəcəm. Mən hazır skript istifadə etməyin (copy-paste programçılığı) əleyhinə olduğumçün sizə də hazır heç nə təklif etmirəm. Oxuyun, strukturun necə qurulduğunu dərk edin və öz kodunuzu özünüz yazın. Uzunçuluq etməyib işə başlayaq.

HTTP protokolu istifadəçinin saytda olduğu müddəti tam əks etdirən sesiya yaratmaq imkanı vermir. Ancaq onun köməyi ilə biz istifadəçinin saytla son davranışını qeyd edə bilərik, hansı ki, bundan sonra istifadəçi yüklənmiş səhifəyə saatlarla baxar və ya onu tərk edə bilər.
Ona görə biz təxmini olaraq 10 dəqiqə (standart 20 dəq.) ərzində istifadəçinin heç bir yeniləmə işi etmədiyini nəzərə alıb, onun resursumuzu tərk etdiyi qərarına gələcəyik.

Read More

24 Nov

WEB-də təhlükəsizlik seriyasından – Çətin parollar

Administratorun qızıl qaydası – «Parolun çətin olsa, basılmaz saytın A.M.=)». Düşünürəm ki, onları hər yerdə işlətmək daha məsləhətdi. Əsasən də ƏS-lərinə və ya məlumat bazasının serverinə giriş icazəsi zamanı parolun kifayət qədər çətin olması məqsədə uyğundur. Hətta xüsusi şifrə hazırlayan (password generator) utilitlərdən istifadə ideal olardı.

Əgər xaker sizin serverə skriptdəki boşluqlardan istifadə edərək daxil ola bilmədisə o çalışacaq ki, sadə üsullarla parolu müəyyən etsin.

Əgər istifadəçi adı və parol URL vasitəsilə ötürülürsə, hətta azacıq təcrübəsi olan xaker sadə program və ya skript yazaraq parolu müəyyən edə bilər. Xakerə belə programı yazmaqçün elə də çox şey lazım olmayacaq:

• Bir dəfə serverə hər hansı istifadəçi adı və ya parolla sorğu göndərmək;

• Serverin şifrə və ya istifadəçi adının səhv olması ilə əlaqəli verdiyi cavaba baxmaq. Əgər səhv yoxdursa bu o deməkdir ki, parol tapıldı, xaker öz istəyinə ele birici dəfədən nail oldu =)

• Sadə programın köməyi ilə hər dəfə ayrı istifadəçi adı və parolla URL sorğu göndərmək. Gələn cavabların hər hansı bir etalon nöqtəsinin işində fərq yaranarsa deməli parol tapılıb. Read More

13 Nov

İsitifadəçi adı və parolun düzgünlüyünün yoxlanılması

PHP ilə tanışlığımdan daha əvvəl məni avtorizasiya (bu sözü ana dilimizə tərcümə etməkdə çətinlik çəkdim=) məsələsi çox maraqlandırmışdı. Amma helə indi də istifadə etdiyim variantın ideal olub olmadığından şübhəm var. Yenə də Webdə istifadə olunan bir çox variantdan daha güvənilirdi.

İstifadəçinin rahatlığı və təhlükəsiszliyi nəzərə alaraq işimizi sessiya ilə görəcəyik.

İlk növbədə bizə 2 php faylı lazmdır: biri index.php, digəri isə autor.php (adlar şərtidir). İlk faylımızın içinə sadə HTML formu yazırıq. Hardasa aşağıdakı kimi:

<form action=”autor.php” method= “POST”>
İstifadəçi adı : <input type=”text” name=”name”><br />
Şifrə : <input type=”password” name=”password”><br />
<input type=”submit” value=”Daxil ol”>
</form>

Read More

25 Oct

MySQL cədvəlindən çağırılan məlumatların ardıcıllığının dəyişdirilməsi

Bu yaxınlarda MySQL bazası ilə işləyən zaman hər zaman işlətdiyim ORDER BY nəsə mənə kömək etməməyə başladı. Yenə o uzun SQL sorğularında nəyisə düzgün yazmadığımı bilirdim. Düşündüm ki, bunun daha rahat bir yolu mütləq olmalıdır… İnternetdə axtarışlarım da mənə praktik bir çıxış yolu tapmağıma kömək etmədi. Sabahsı gün işə gedərkən metroda birdən ağlıma phpMyAdminin köməkliyi ilə istədiyimiz ardıcıllığı alıb daha sonra isə həmin ardıcıllığa uyğun SQL çağrışlarından istifadə etmək gədi. Artıq “İçərişəhər” stansiyasının tez gəlməsini arzulayaraq, beynimdə nə etmək istədiyimi konkretləşdirməyə başladım… Beləliklə nəzərə alaq ki, bir neçə sətrdən və sütundan ibarət bir cədvəlimiz var. Bilirik ki, adi qayda ilə bazadan sətrlərimizin hamisini çağırmalı olsaq, bizə köhnədən yeniyə doğru bir siyahı təqdim olunacaqdır (sadəcə “SELECT * FROM `table_name`” sətrini istifadə etsək). Bu hər zaman işimizə yaramaya bilər, ardıcıllığı istədiyimiz sütun əsasında, həm köhnədən yeniyə, həm də əlifbaya uyğun və əksinə şəkildə seçə bilərik. Read More

29 Sep

PHP və MySQL-də unicode probleminin həlli

PHP-də ana dilimizdə sayt yaradanların tez-tez qarşılasşdığı cansıxıcı problemlərdən biri azərbaycan dilinə məxsus simvolların evezinə sual işarələrinin (????) çıxmasıdır. Bunun qarşısını almaqçün internetdə çoxlu üsullar təklif olunsa da çox təssüf ki, onların hamısı özünü doğrultmur.
Bes bu problemi həll etmək üçün nə etməli?
İlk öncə biz saytımızın əsasını təşkil edəcək mətni UTF8-də saxlamalıyıq. Əgər Notepad++ istifadə edirsinizsə (məslət görürəm ki, istifadə edəsiniz=) format menyusundan UTF-8 without BOM seçin. UTF-8 bir çox dilləri dəstəklədiyi üçün daha çox istifadə olunur (UTF8-də olan səhifələrin ölçücə daha iri olmasına baxmayaraq). Dünyanın müxtəlif ölkələrinin blog yazarlarının rahat işləyə bilməsi üçün WordPress də ondan istifadə edir.
HTML kodlarını yazarkən tagları arasına

1
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

meta tagını əlavə etməyi unutmuruq. Və ya

1
header('Content-type: text/html; charset=utf-8');

funksiyasını işlədin. Read More

14 Mar

Установка Metasploit 3.3.3

О Метасплоите мы говорили в одной из прошлых тем.В этой непосредственно будем говорить о ее установке на Ubuntu 8.10.Почему в убунту 8.10 – потому что это один из моих самых любимых версий этого дистрибутива.

И так для начала нам надо установить расширения Ruby:

1
$ sudo apt-get install ruby libopenssl-ruby libyaml-ruby libdl-ruby libiconv-ruby libreadline-ruby irb ri rubygems

1
2
3
4
5
6
biotin@home:~$  sudo apt-get install ruby libopenssl-ruby libyaml-ruby libdl-ruby libiconv-ruby libreadline-ruby irb ri rubygems
[sudo] password for biotin:
Reading package lists... Done
Building dependency tree
Reading state information... Done
.... <a href="http://myscript.biz/?p=379#more-379" class="more-link">Read More <span class="meta-nav">&rarr;</span></a>

18 Jan

Отличия Debian.

Хотя Ubuntu относиться к deb дистрибутивам,основоположником являеться сам Debian.Хочу его давно испытать.Недавно поставил Backtrack 4.Весьма интересный дистрибутив.В 1.4 Гб диск входит так много полезных программ,что нужна целая вечность чтоб их проверить и испытать.В основном это программа для хакинга:различные снифферы,брутфорсы и много всякой всячины.Кроме того готовый – mysql,apache,php  и много всего.Но интерес в Дебиану никак не хочет исчезать.Отличиями от Ubuntu являеться стабильные дистрибутивы(на данный момент – Lenny 5), и нет путаницы  с зависимостями в  библиотеках,пакетах в различных дистрибутивах.И много много debпакетов,которые специально разработаны для Дебиана, с которыми иногда в Убунту возникают проблемы.

19 Mar

Сервер своими руками..

Об установке Apache,Mysql,PHP на Линукс можно найти кучу документации..так как это вводный пост, было бы неправильно начинать сразу углубляться в подробности каждого приложения.Поэтому было решено сначала ознакомить пользователся с установкой этих приложений.

В этом посте я расскажу об установке Apache,Mysql,PHP нa Линукс (UBUNTU 8.10).
Как известно более подробную установку можно произвести через терминал,после которого нужно привязать их друг другу в файлах config(об этом смотрите ниже).Но для новичка есть более удобный вариант автоматической установки.
И так установить LAMP можно через
System ->  Administration -> Synaptic Package Manager -> вводим пароль root
после того как открылась прога выбираем в меню Edit -> Mark Packages by Task
В открывшем окне ставим галочку на LAMP server  и жмем ок..
дальше все закачается  и установится..
Для проверки работоспособности открываем браузер и печатаем в адресной строке http//:localhost/index

Read More