Daily Archives: 2008.04.30. 9:57

Hullanak az IIS-ek

Az utóbbi időben egyre több olyan hír jelent meg a világhálón, amelyek szerint durva hiba lehet a Windows-ban, az IIS-ben vagy az SQL Serverben, mert sorra hullanak azok a szerverek, melyek ezeket használják. Április 17-én a Microsoft kiadott egy Security Advisory-t (951306), amely azonban nem írt arról, hogy pontosan mi a hiba oka, csak azt tette egyértelművé, hogy nincs patch, mi javítaná.

Nos, azóta a Microsoft jobban utánajárt a dolognak és kiderítették, hogy nem termék hibáról van szó, hanem SQL injection módszerrel sikerült megfektetni az érintett webhelyeket. Azaz a webhely programozója tehet arról, hogy security bugot hagyott a kódjában. Számomra ugyan meglepő, hogy ez a támadási módszer a mai napig ilyen jól működik, de hát elég sok régi kód van még sok helyen használatban…

A Microsoft részletes válasza megtalálható ezeken a címeken:

A lényeg:

  • Nem találtak hibát Microsoft termékben, amit ez a támadási hullám kihasználna.
  • A támadásokat SQL injectionön keresztül hajtották végre.
  • A támadás teljesen automatikus, egy január óta működő web bot keresők segítségével megtalálja a támadható weblapokat. Egyelőre nem ismert (vagy nem publikus) hogy milyen kifejezésre keres ez a web bot. Gyaníthatóan .asp és .aspx kiterjesztésű oldalakra vadászik.

Akinek esetleg még új az SQL injection fogalma, annak nagyon tudom javasolni Scott Guthrie rövid írását a témáról.

 

VB és VBA

A magyar műszaki felsőoktatás egyik fellegvárában egy kiváló tanszék (félreértések elkerülése végett: nem a miénk) kitalálta, hogy tárgyat akar indítani "VB/VBA" témában. A levelezésből kiderült, hogy valóban Visual Basic 6-ra és Visual Basic for Applicationsre gondoltak. Igen, mindezt most, 2008-ban! Mi sem lehet hasznosabb annál, mint ha 10 éves technológiát kezdünk el tanítani egy olyan generációnak, amelyik 1-3 év múlva végez. Erre mondaná néhány kollégám: ez itt kérem abszurdisztán.

A tárgy mögött álló szakmai indok szerint ennek azért van létjogosultsága, mert a Vista, a Windows Server 2008 és az Office következő verziója is támogatni fogja a VB-t és a VBA-t. Továbbá az is kiderült a levelekből, hogy következetesen keveredik a VB és a VBA neve, szerepe és célja. Mikor erre rájöttem, nem tudtam, hogy sírjak vagy nevessek. Különösen összevetve mindezt a stratégiai jellegű minőségfejlesztéssel.

Néhány dolgot mindenesetre érdemesnek látok tisztázni:

Ne keverjük össze az almát a körtével! Adott két nagyban hasonlító, de teljesen más célú környezet, a VB és a VBA. Ezen kívül adott két szempont, az egyik, hogy egy adott technológiára érdemes-e még fejleszteni, meg hogy az adott technológiával készült alkalmazások használhatóak-e még.

Nyelvek: 1. VB

A Visual Basic 6 nyelvet már 2002-ben (!) felváltotta a Visual Basic .NET a Visual Studio .NET-tel, aztán jött a VS 2003, majd a VS 2005 és most a Visual Basic 9-ről (!) beszélünk a VS 2008-ban! A két nyelv között ég és föld a különbség. Az a VB6 programozó, aki ma erőlködés nélkül megért egy LINQ-kel és generikus típusokkal, osztályokkal és kivételkezeléssel teletűzdelt Visual Basic 9 kódot, az előtt emelem a kalapom. Ennyit fejlődött a nyelv, nem beszélve a két runtime közötti óriási különbségről.

Nyelvek: 2. VBA

A Visual Basic for Applications a VB6 Office-ban, Corel-ban és tetszőleges egyéb környezetben történő felhasználása annak érdekében, hogy az alkalmazást kívülről egyszerűen programozhatóvá tegyék. A gyökerei VB6-ba nyúlnak vissza és azóta nem fejlődött, tehát kb. 10 éves technológiáról van szó. Nyilvánvalóan még sokáig supportált lesz, de új megoldások fejlesztése igencsak megkérdőjelezhető, mert

"As of July 1, 2007, Microsoft will no longer offer VBA distribution licenses to new customers."

Nyelvek: 3. Visual Studio for Applications (VSTA)

A VSTA a VBA utódja abból a szempontból, hogy saját alkalmazásunkba programozói környezet építhető. Ez is .NET alapú:

"Enables ISVs and enterprises to embed a streamlined IDE into their applications, accelerating customization development by end users, resellers, system integrators, and internal teams.  Includes support for Visual Basic and Visual C# along with other tools for application customization."

Nyelvek 4. Visual Studio Tools for Office (VSTO)

A VSTO az Office programozás jövője, azaz ebből a szempontból a VBA felváltója, méghozzá egyértelműen, már 2003-től kezdve. Már alapból a VS 2008 része és természetesen .NET alapú fejlesztést támogat. Kár is részletezni, hogy sokkal hatékonyabb, mint a VBA és ezé a jövő.

Support lifecycle:

Természetesen a VB6 és a VBA támogatott még jó sokáig, de ennek az az EGYETLEN oka, hogy tele van a világ ilyen kódokkal. Nem pedig az, hogy az MS arra buzdítana bárkit, hogy ezt használja.

A VBA oldalon ez áll:

"Microsoft does not expect to make significant enhancements to VBA."

"As of July 1, 2007, Microsoft will no longer offer VBA distribution licenses to new customers."

Ugyanitt ez javasolt helyette:

"Microsoft is investing its application programmability resources in Microsoft® Visual Studio® Tools for Applications (VSTA) and its companion set of tools, Microsoft® Visual Studio® Tools for Office (VSTO). We encourage you to consider VSTA for new applications that require application programmability technology."

Már 2003-ban óriási különbség volt a VSTO javára (lásd Comparing Microsoft Visual Basic for Applications 6.0 and Microsoft Visual Studio Tools for the Microsoft Office System – Office 2003!) és ez a szakadék az azóta eltelt években tovább növekedett. Már 2005-ben sem volt nehéz felsorolni 9 ütős érvet a VSTO mellett. És azóta eltelt újabb 3 év.