Articole

Introducere in SQL Server pentru dezvoltatorul PHP

SQL Server Management Studio Express permite administrarea, accesarea, configurarea componentelor SQL Server 2008 Express, SQL Server 2008 Express – Advanced Services si SQL Server Compact 3.5 SP1.

Cerinte

In cazul SQL Server Express Management Studio 2008 cerintele sunt urmatoarele:

  • Windows 7; Windows Server 2003 Service Pack 2; Windows Server 2008; Windows Server 2008 R2; Windows Vista; Windows Vista Service Pack 1; Windows XP Service Pack 2; Windows XP Service Pack 3
  • Sisteme 32-Bit: Intel sau compatibil cu 1GHz sau mai mult (2 GHz sau mai mult este recomandat)
  • Sisteme 64-Bit: 1.4 GHz sau mai mult (2 GHz sau mai mult sunt recomandate)
  • Minim 512 MB RAM (1 GB sau mai mult e recomandat)
  • 1 GB spatiu liber pe disc

Instalare

Microsoft SQLServer 2008 Management Studio Express poate fi descarcat de la adresa:

http://www.microsoft.com/downloads/details.aspx?familyid=08E52AC2-1D62-45F6-9A4A-4B76A8564A2B&displaylang=en

Din SQL Installation Center se alege tab-ul Installation si apoi selectati New SQL Server stand-alone installation or add features to an existing installation.

Selectati in pasul urmator: Perform a new installation of SQL Server 2008 si continuati instalarea.

In final dupa instalare veti gasi un director Microsoft SQL Server 2008 ca in exemplul de mai jos:

Interfata SQL Server 2008 Management Studio Express

Urmatorul pas este sa va conectati la interfata SQL Server 2008 Management Studio Express si sa creati o baza de date si o tabela.

Rulati urmatoarea comanda:

SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
USE [master]
CREATE DATABASE phpromania
GO
USE phpromania

CREATE TABLE [dbo].[phpromaniaUsr](
            [ID] [int] IDENTITY(1,1) NOT NULL,
            [Username] [nvarchar](50) NOT NULL,
            [Email] [nvarchar](50) NOT NULL,
            [RegDate] [datetime] NOT NULL,
      CONSTRAINT [PK_phpromaniaUsr] PRIMARY KEY CLUSTERED
      (
            [ID] ASC
      )ON [PRIMARY]
) ON [PRIMARY]

CREATE UNIQUE NONCLUSTERED INDEX [IX_UniqueEmail] ON [dbo].[phpromaniaUsr]
(
      [Email] ASC
) ON [PRIMARY]

Accesare SQL Server din PHP

Pentru a verifica ca aveti driver-ul SQL Server pentru PHP instalat, creati un fisier info.php cu urmatorul continut:

<?

phpinfo();  
?>

Si rulati-l. Daca aveti suportul SQL Server ar trebui sa vedeti in cadrul paginii rezultate urmatoarea sectiune:

Daca nu gasiti aceasta sectiune, puteti descarca SQL Server Driver pentru PHP
Pentru documentatia legata de accesarea SQL Server din PHP puteti vizita link-ul SQLSrv API Reference

SQL Server Driver pentru PHP contine urmatoarele functii:

Functie Descriere
sqlsrv_begin_transactionIncepe o tranzactie
sqlsrv_cancelOpreste un statement.
sqlsrv_client_infoOfera informatii despre client.
sqlsrv_closeInchide conexiunea
sqlsrv_commitComanda commit. Face ca o tranzactie sa devina permanenta.
sqlsrv_configureModifica configurarile.
sqlsrv_connectCreaza si deschide conexiunea
sqlsrv_errorsIntoarce erorile legate de ultima operatie efectuata.
sqlsrv_executeExecuta o comanda.
sqlsrv_fetchDetermina ca urmatorul rand sa fie activ pentru citire.
sqlsrv_fetch_arrayReturneaza urmatorul rand sub forma unei liste (array).
sqlsrv_fetch_objectReturneaza urmatorul rand ca un obiect.
sqlsrv_field_metadataReturns field metadata.
sqlsrv_free_stmtInchide un statement.
sqlsrv_get_configReturneaza setarea unei valori cerute.
sqlsrv_get_fieldReturneaza un camp din randul curent.
sqlsrv_has_rowsVerifica daca un rezultat are unul sau mai multe randuri.
sqlsrv_next_resultDetermina ca urmatorul rand sa fie dispobil pentru procesare.
sqlsrv_num_rowsReturneaza numarul de randuri rezultate.
sqlsrv_num_fieldsIntoarce numarul de campuri din rezultatul activ.
sqlsrv_preparePregateste o comanda Transact-SQL fara a o executa.
sqlsrv_queryExecuta o comandaTransact-SQL.
sqlsrv_rollbackSe face rollback pe o tranzactie. Se revine la starea de la inceputul tranzactiei.
sqlsrv_rows_affectedReturneaza numarul de randuri modificate.
sqlsrv_send_stream_dataSe trimit pana la 8 KB de date catre server la fiecare rulare a functiei.
sqlsrv_server_infoOfera informatii despre server.

Creati un fisier test_conexiune.php

$server = "PHPRomania\\SQLEXPRESS";  
$options = array(    "UID" => "sa",    "PWD" => "password",    "Database" => "phpromania"  );    
$conn = sqlsrv_connect($server, $options);  
if ($conn === false) 
	die("<pre>".print_r(sqlsrv_errors(), true));    
echo "Successfully connected!";    
sqlsrv_close($conn);

In cadrul acestui fisier puteti seta parametrii de conectare la baza de date

$sql = "SELECT * FROM dbo.phpromaniaUsr"; 
$query = sqlsrv_query($conn, $sql);  
if ($query === false)  
{    
	exit("<pre>".print_r(sqlsrv_errors(), true));  
}    
while ($row = sqlsrv_fetch_array($query))  
{    
	echo "<p>Bine ai venit ".$row[Username]."!</p>";  
}  
sqlsrv_free_stmt($query);

Resurse

http://blogs.msdn.com/jnak/archive/2009/11/02/setting-up-sql-server-management-studio-with-sql-server-express-2008-installed.aspx
SQLSRV API Reference (SQL Server Driver for PHP)
PHP Data Objects (PDO) Reference (SQL Server Driver for PHP)PHP on Windows Training Kit – http://www.microsoft.com/downloads/en/confirmation.aspx?familyId=c8498c9b-a85a-4afa-90c0-593d0e4850cb&displayLang=en

Read more...

SEO Toolkit

IIS SEO Toolkit reprezinta o aplicatie gratuita care ajuta dezvoltatorii sa-si imbunatateasca relevanta rezultatelor cautarilor. Prin intermediul ei aveti posibilitatea sa cresteti traficul website-ului prin optimizarea lui pentru motoarele de cautare, imbunatatind calitatea site-ului.

IIS SEO Toolkit include urmatoarele module care se integreaza cu IIS Manager:

– Site Analysis – care sugereaza modificari ce pot ajuta la imbunatatirea calitatii si volumului de trafic pentru web site-ul dvs la motoarele de cautare
– Robots Exclusion –
prin intermediul caruia poti controla si restrictiona accesul motoarelor de cautare la continutul tau.
– Sitemaps and Site Indexes
– ajuta sa informezi motoarele de cautare despre paginile pregatite pentru indexare

Cerinte minime

IIS SEO Toolkit ruleaza pe orice versiune Microsoft Windows suportata de IIS 7 si anume:

  • Windows Vista Service Pack (SP)1 si mai noi
  • Windows Server 2008
  • Windows 7
  • Windows Server 2008 R2

Datorita faptului ca IIS SEO Tookit depinde de IIS 7, acesta nu e functional pe Windows XP.

Puteti descarca IIS SEO Toolkit de pe urmatoarele linkuri:

Analiza site-ului (Site Analysis)

Prin intermediul acestei optiuni puteti genera un raport care contine urmatoarele sectiuni:

Violations – informatii despre posibile probleme SEO, continut, standarde si performanta. De exemplu: lipsa tag-uri si atribute, markup invalid.
Content – informatii despre structura directorului, tipuri continut, legaturi externe, fisiere duplicate, titluri duplicate
Performanta– informatii despre paginile lente.
Legaturi – informatii despre paginile cu cele mai multe legaturi, paginile blocate prin robots.txt

Parametrii pe care trebuie sa-i specificati in momentul in care incepeti o analiza noua:

Maximum Number of Links – controleaza numarul de legaturi care vor fi procesate si descarcate de pe site-ul analizat.

Maximum Download Size Per Link – controleaza numarul de kiloocteti care vor fi descarcati per legatura.

Ignore ‘nofollow’ attribute – tag-ul nofollow este folosit pentru a spune crawler-ului motorului de cautare sa nu acceseze legatura respectiva.

Ignore ‘noindex’ meta tag – tag-ul noindex este folosit pentru a spune crawler-ului motorului de cautare sa nu indexeze continutul paginii respective.

Putem alege un site local sau unul remote ca in imaginile de mai jos.

Rulati raportul. Selectati mai apoi raportul realizat.

Din sectiunea Violations aveti acces la urmatoarele informatii:

  • Violations Summary – sumar cu erorile descoperite care pot fi de tipul: SEO, continut, standard, performanta
  • Pages with Most Violations – paginile cu cele mai multe erori
  • Violation Categories – numarul de erori grupat pe tipuri
  • Violation Level – nivelul erorilor (Warning, Information, Error)

a) Violations Summary

b) Paginile cu cele mai multe erori

c) Erorile grupate pe categorii

d) Nivelul erorilor

Pentru fiecare eroare in parte putei vedea pagina pe care apare si detalii despre aceea pagina ca in imaginea de mai jos

Puteti vedea rutele prin care ajunge la pagina respectiva.

De asemenea aveti acces la analiza fiecarei pagini in parte.

Din sectiunea Content aveti acces la urmatoarele informatii:

  • Host Summary – un sumar cu raportul creat
  • Directory Summary – un sumar cu directoare gasite pe server.
  • Content Types Summary – sumar cu tipurile de continut
  • Status Code Summary – sumar cu codurile HTTP
  • External Links – legaturile externe gasite de SEO Toolkit
  • Duplicate Files – paginile care au continut duplicat
  • Duplicate Titles – paginile cu acelasi titlu
  • Duplicate Description – paginile cu aceeasi descriere
  • Duplicate Keywords – paginile cu aceleasi cuvinte cheie meta.

a) Host Summary

b) Directory Summary

c) Content Types Summary

d) Status Code Summary

e) Duplicate Files

f) Duplicate Titles

g) Duplicate Description

h) Duplicate Keywords

Din sectiunea Performance aveti acces la urmatoarele informatii:

  • Slow Pages – lista cu paginile lente
  • By Category – performanta site-ului grupata pe fiecare director descoperit
  • By Content Type – performanta site-ului grupat dupa tipul fisierului gasit
  • Pages with many Resources – paginile cu cele mai multe resurse.

a) Slow Pages


b) By Category


c) By Content Type


d) Pages with many Resources

Din sectiunea Links aveti acces la urmatoarele informatii:

  • Pages with Most Links – paginile cu cele mai multe legaturi
  • Most Linked Pages – paginile care au cele mai multe legaturi spre ele
  • Links Blocked by robots.txt – paginile blocate de robots.txt
  • Protocols – sumar cu protocoalele gasite de SEO Toolkit

a) Pages with Most Links


b) Most Linked Pages


c) Links blocked by robots.txt

d) Protocols

Salvare raport

Fisierele de raport sunt de asemenea salvate. Le puteti gasi in directorul Documents/IIS SEO Report astfel:

– Results.xml – rezultatul analizei
– Settings.xml – contine setarile generarii raportului
– Violations.xml – contine erorile generate

Blocarea crawler-ului IIS Site Analysis

Toate cererile facute de crawler-ul IIS Site Analysis sunt realizate cu header-ul “user-agent”:

“iisbot/1.0 (+http://www.iis.net/iisbot.html)”

Pentru ca IIS Site Analysis crawler sa nu acceseze un anumit site puteti adauga in fisierul robots.txt din directorul root urmatoarele randuri:

User-Agent: iisbot
Disallow: /

Puteti prin intermediul Robots Exclusion sa adaugati reguli noi in fisierul robots.txt

Resurse

http://www.iis.net/expand/SEOToolkit
http://www.bing.com/community/blogs/webmaster/archive/2009/08/17/setting-up-iis-7-before-installing-iis-seo-toolkit.aspx
http://weblogs.asp.net/gunnarpeipman/archive/2009/06/06/iis-seo-toolkit-site-analysis-overview.aspx
Sus

Read more...

Securitate IIS (interpretarea rapoartelor Secunia din introducere in IIS)

Securitatea IIS a fost intotdeauna o problema. Site-ul Secunia.com compara securitatea IIS5, IIS6 raportata la Apache. Se pare ca Microsoft si in special echipa de dezvoltare IIS a invatat ceva din experienta Code Red si Nimda.

Din 2003 au fost raportate de catre Secunia:

  • 9 vulnerabilitati de securitate pentru IIS 6.0 (9 rapoarte Secunia, din care 1 nerezolvata)
  • 2 vulnerabilitati de securitate pentru IIS 7.0 (2 rapoarte Secunia, din care 0 nerezolvate)
  • 28 vulnerabilitati de securitate pentru Apache 2.0.x (42 rapoarte Secunia, din care 4 nerezolvate)
  • 31 vulnerabilitati de securitate pentru Apache 2.2.x (18 rapoarte Secunia, din care 2 nerezolvate)

Rapoartele Secunia pot fi vizualizate la urmatoarele adrese:

Trebuie insa avut in vedere anii in care au aparut versiunile de server web. Oricum putem observa ca IIS si-a imbunatatit securitatea de la o versiune la alta.

Vulnerabilitati Apache

Nota: Desi numarul de vulnerabilitati Apache pare mult mai mare decat cel al IIS, unele vulnerabilitati de securitate atribuite Apache, facand parte din LAMP(Linux, Apache, MySQL, PHP) sunt “inerente in alte aplicatii” asa cum afirma Ben Laurie, Director of Security – The Apache Foundation acum cativa ani. (http://itc.conversationsnetwork.org/shows/detail933.html)

Statistici vulnerabilitati

1. Statistici lunare

In grafice sunt reprezentate numarul de rapoarte Secunia din 2003 lunar pe fiecare produs in parte.

sursa: http://secunia.com/advisories/product/1438/?task=statistics
http://secunia.com/advisories/product/17543/?task=statistics

 2. Starea solutionarii

Urmatorul grafic prezinta procentul de rapoarte de securitate care au fost rezolvate/partial rezolvate/nerezolvate. Desi IIS 7.x a avut 2 rapoarte de securitate acestea au fost rezolvate, in timp ce IIS 6 inca prezinta rapoarte nerezolvate.


 sursa: http://secunia.com/advisories/product/1438/?task=statistics

3. Nivel vulnerabilitate

Graficul prezinta nivelul vulnerabilitatii pentru fiecare raport in parte. Se observa ca IIS 7 a prezentat pana acum doar rapoarte cu vulnerabilitati mai putin importante.

4. Sursa atacului

Graficul prezinta sursa atacului potential. Se observa ca in IIS 6 majoritatea surselor sunt remote.

5. Impactul

Graficul Impact prezinta tipul de vulnerabilitate prezenta in fiecare server Web. Observam ca in IIS 7 din cele 2 raportate unul a fost de DoS si unul de ocolire privilegii.

Securitate IIS 7

Pentru a imbunatati securitatea, IIS 7 nu este instalat implicit pe Windows Server 2008. Cand se instaleaza IIS 7, acesta poate deservi doar continut HTML si imagini. Trebuie configurat sa poata deservi continut dinamic: PHP, ASP, etc.

Imbunatatiri securitate in IIS 7:

  • IIS 7 are o structura modulara. Ceea ce inseamna ca facilitatile pe care nu le doriti nu sunt incarcate. In IIS6 se puteau dezactiva facilitati pe care nu le doreati, dar acestea erau incarcate.
  • “Suprafata de atac” este limitata. Prin reducerea numarului de module care se incarca, numarul de zone de atac potentiale este mult mai mic.
  • IIS7 permite sa avem contul IUSR copiat mult mai usor impreuna cu setarile sale de securitate de pe un server pe altul.
  • Unul din modulele noi din IIS 7 il reprezinta modulul de filtrare cereri bazat pe filtrul ISAPI URLScan din IIS 6.

Resurse

http://learn.iis.net/page.aspx/88/configuring-security/
http://technet.microsoft.com/en-us/library/cc731278%28WS.10%29.aspx
http://channel9.msdn.com/posts/scobleizer/Brent-Hill-and-Roger-Grimes-Chatting-about-IIS-7s-security/
http://learn.iis.net/page.aspx/143/use-request-filtering/
http://learn.iis.net/page.aspx/139/iis7-security-improvements/
http://channel9.msdn.com/shows/TechNet+Radio/TechNet-radio-Learn-about-the-IIS7-Security-features-and-benefits/

Read more...