czwartek, grudnia 14, 2006
Framework Zend
The latest pre-release version of Zend Framework provides the foundation for building websites based on the Model-View-Controller (MVC) pattern. The implementation is designed to be lightweight, modular and flexible, consistent with the philosophy driving all design of this open source PHP framework.
The latest release of Zend Framework now also provides support for the Google Data API, which provides a simple standard protocol for PHP applications to read and write data to and from Google applications such as Google Base and Google Calendar. The Zend Google Data PHP Client Library was jointly developed by Zend and Google.
Wespół raźniej... najwyraźniej
The technology engagement between the two companies will include:
- Technical improvements for PHP, which will be submitted under the PHP license to the PHP community for feedback and contribution.
- Microsoft intends to develop and release an Internet Information Services (IIS) add-on component, FastCGI, that will serve as the interface between PHP and the IIS Web server.
- Zend will establish a Windows testing lab and conduct regular tests and performance improvements to maintain high performance of PHP on the Windows Server platform as PHP evolves.
- Microsoft and Zend will work to help ensure a production-quality PHP runtime environment for IIS 6.0 (Windows Server 2003) and IIS 7.0 (Windows Server "Longhorn").
- Zend and Microsoft will actively participate in the PHP community, ensuring an open discussion to help developers planning to deploy PHP applications on the Windows Server platform.
Szukajcie a znajdziecie
Pomysł ten wykorzystali IBM i Yahoo udostępniając całkowicie za darmo oprogramowanie do indeksowania dokumentów. Można go wykorzystać do zbudowania prostej indeksowarki sieci korporacyjnej typu entry-level (wstępny poziom). Nosi nazwę IBM OmniFind Yahoo Edition i może indeksować 500 tyś. dokumentów o ponad 200 fromatach. Szukanie w sieci lokalnej jest zintegrowane z wyszukiwaniem w Internecie w oparciu o Yahoo. Dostęp do wyszukiwarki odbywa się poprzez przeglądarkę internetową.
Produkt jest uproszczoną wersją płatnej, korporacyjnej edycji OmniFind Enterprise Edition.
Pytanie filozoficzne: jakie są kryteria przejście z wersji uproszczonej na koproracyjną? Nowe opcje, szybkość, ilość dokumentów, integracja z innymi programami.
Oczywiście oba te rozwiązania udostępniają programistom API do obsługi wyszukiawnia w swoich aplikacjach.
środa, grudnia 13, 2006
Bo do tanga trzeba dwojga
Tango ale z kim?
Sun wprowadzi niebawem nową wersję Java SE 1.6 zwaną Mustang (skupiono się na części klienckiej i lepszej integracji z platformą uruchomieniową, Java 1.5 Tiger skupiała się na części serwerowej). Nowością jest lepsza integracja z językami skryptowymi. Zgodność ze standardem Java Specification Request 223, pozwalająym na uruchomienie m.in. JavaScript and Python, w środowisku Java Virtual Machine (co z PHP, brak tutaj na ten temat informacji). Wszystko po to aby podzielić zadania: skompliowane obliczenia i dostęp do baz wykonać w Javie, a PHP zostawić sprawę interfejsu. Dodatkowo postanowiono zaktualizować NetBeans 5.5. do wsparcia nowej wersji Javy (chociaż w NetBeans wcześniej mówiło się o wsparciu jezyków skryptowych - projekt Coyote [https://coyote.dev.java.net/])
Nie sposób tu nie wspomnieć o MS - Mimo, że MS stoi na uboczy jeżeli chodzi o technologie open-sourceto ostatnio zatrudniło Jim Hugunin, twórcę języka Jython, któy pracuje w projekcie IronPython (wsparcie dla tego języka w środowisku platformy Microsoft .Net Common Language Runtime).
Inny projekt języka to Groovy specjalnie napisany do uruchamiania w środowisku JVM (komitet techniczny składa się z przedstawicieli Sun, IBM i Apache)
Oto druga połówka do tanga.
W ramach nwego JSE 1.6 przewidziano lepszą integrację z platformą MS (IBM to już ma więc Sun też chce) w zakresie WS (usług sieciowych) [http://java.sun.com/developer/technicalArticles/glassfish/ProjectTango/] w ramach projektu Tango (działa w ramach większej inicjatywy GlassFish - otwartej inicjatywy Sun stworzenia implementacji własnej WS). W Sun jest specjalna grupa ludzi WS - http://java.sun.com/webservices/, współpracująca z grupą ludzi z MS - http://windowscommunication.net/ (WCF - Windows Communication Foundation a nie World Children Fund) w zakresie implementacji i testów zgodności standardów WS-*. Chodzi m.in. o import opisu serwisów WS ze środowiska MS WCF (WSDL) przy pomocy JAX-WS, optymalizację transferu, bezpieczeństwo, tranzakcyjność poprzez "wyklikanie" w interfejsie IDE (np. NetBeans) odpowiednich właściwości. Szybkie, łatwe i proste...
Aaa kotki dwa
Fenomen Berkeley DB
Po wykupieniu przez firmę Oracle tej bazy nic nie wskazuje na jej upadek, przeciwnie firma lansuje ten produkt jako natywą (i co najważniejsze "lekką", zabierającą mało zasobów) bazę danych wspierającą dokumenty XML . Nazwa ją Berkeley DB XML (dostęp do dokumentów odbywa się poprzez XQuery 1.0 i XPath 2.0 zgodnie z zaleceniami W3C, indeksowanie dokumentów). Zaletą jej jest stara, sprawdzona technologia Berkeley DB - ACID, szyfrowanie, automatyczne wycofanie z tranzakcji w przypadku błędu, bezosbługowość, duża niezawodność, replikacja, integracja z Apache, wsparcie dla wielu j. skryptowych i Java poprzez JDBC, działa na wielu platformach) [http://www.oracle.com/technology/products/berkeley-db/xml/index.html].
Zastosowanie - przechowywanie i udostępniania dokumentów z jednego miejsca dla aplikacji sieciowych i internetowych. Inne to szybka, mała baza lokalna do przechowywania dokumentów XML lub aplikacje z wbudowaną bazą. Uwaga inna implementacja bazy XML - eXist. Istnieje API do bazy dla języka PHP. Uwaga - baza może działać w roli serwera: XDBC, SOAP, REST, XML:DB
Myśli o bezpieczeństwie
Muszę to sprawdzić.
Ostatnia poprawka do bibliteki XML Core w MS miała uniemożliwić sięganie z poziomu XMLHTTPRequest (w wydaniu COM, nie natywnym dostarczanym z IE 7, gdzie to już jest wprowadzone) do witryn spoza domeny wejściowej.
Co to ma znaczyć?
Od dawna podejrzewałem, że coś jest nie tak z wielowatkowością i obsługą wielu procesów naraz w aplikacjach open-source (vide Apache, którego kopia uruchamiana jest przez administratorów dla każdej witryny na jednym i tym samym fizycznym serwerze. Tłumaczą to lepszą izolacją między chodzącymi na różnych witrynach aplikacjami. Podobnie jest w ZOPE, gdzie podaje się jawnie ilość wątków jednocześnie mogących być uruchamianych). Nie wiem czy mam rację, ale to o czymś świadczy.
Z innej beczki, taka maszyna wirtualna Javy (JVM) JRockit w wydaniu BEA - ukazał się artykuł (http://news.zdnet.com/2100-3513_22-6142172.html?tag=nl.r3302) na ZDNet "BEA to run Java sans operating system" w któym opisuje sie nowy ich produkt WebLogic Server Virtual Edition (sam WebLogic Server służy do uruchamiania wielu aplikacji Java, wersja wirtualna jest opracowana dla uruchamiania jej w środowisku hyperwizora VMware (oprogramowanie wspierające wirtualizację firmy VMWare, hyperwizor służy do uruchomienia wielu kopii tego samego oprogramowania na jednej konfiguracji sprzętowej). W tym przypadku hyperwizor nazywa się Liquid VM i kontaktuje się bezpośrednio (pomijając warstwę OS) z hyperwizorem VMWare. Cel takiej wirtualizacji? Dostarczenie administratorom narzędzi do konsolidacji wielu aplikacji Java na pojedyńczym serwrze oraz zoptymalizowanie ich wydajności. Wirtualizacja dla korporacji słuzy do lepszego wykorzystania sprzętu poprzez rozłożenie obciążenia wielu aplikacji na pojedyńczej maszynie - wewnętrzne ograniczenia (nazwijmy to poprostu fuszerką, wadą architektury) aplikacji powodują, że nie potrafi zrównoleglić przetwarzania zapytań (procesó) przy zwiekszonym obciążeniu w rezultacie czego tworzy się do aplikacji kolejka nieobsłużonych żądań (których nie potrafi aplikacja jednocześnie zrealizować mimo, że moc obliczeniowa jest wystarczająca).
Firma planuje dodać do tej wirtualizacji obsługę innych architektur, chodzi o wsparcie wirtualizacji dla Xen i MS. Gotowość produktu - luty 2007.
wtorek, grudnia 12, 2006
Co jest wazne?
Wniosek:
- trudno przezwyciężyć mit doskonałego wsparcie i pomocy technicznej dla platformy Windows, inne platformy dopiero tu raczkują. Ale jest jedno ale, w dobie aplikacji internetowych, wymagajacych do pracy wyłącznie standardową przeglądarkę internetową i odpowiednie wtyczki, mogą one dziłać na dowolnym sprzęcie. Ten trend zaczyna być coraz wyraźniejszy, ale Gartner nie oczekuje aby w ciągu najbliższych 5 lat połowa typowych aplikacji korporacyjnych była zrealizowana w tej konwencji.
- Kazda przeglądarka nie nie znaczy bez dobrych "wtyczek", ale kazda wtyczka wnosi koleją dziure do przegladarki. Kazdy kij ma dwa konce...
czwartek, grudnia 07, 2006
Trzy rozwiązania
- MS uruchamia podbnie jak Google przeglądarkę i wyszukiwarkę książek - twierdzi, że "w dobie powszechnego bełkotu i chaosu informacyjnego w Internecie, jedynie informacja zawarta w książkach jest choć nieco przestarzała ale lepiej ocenzurowana i na wyższym poziomie merytorycznym". Tak zgadzam się z tym w pełni.
- Sun potwierdził słuszność mojej tezy 80% Client / 20% Server, gdzie Client - oznacza jakiś framework wspierający technologię Ajax po stronie klienta w środowisku JavaScript (np. dojo) + CSS + DOM, a Server - oznacza platformę serwer aplikacji w tym przypadku J2EE. Podobny projekt ma Microsoft (AJAX dla .NET) i Google (GWTK) [http://www.adtmag.com/article.aspx?id=18912]. Składniki:
- Client-side JavaScript toolkits, such as Dojo, which hides the low-level processing of XMLHttpRequest;
- DWR (Direct Web Remoting), which enables RMI-like invocation from the JavaScript client code to backend Java class;
- AJAX-enabled JSF components which allows the building of AJAX apps by dragging-and-dropping UI components;
- Wrapper technology such as jMaki that permits use of AJAX widgets from different sources using common interface;
- Java to JavaScript translator technology such as Google Web Toolkit (GWT) and
Existing Web app frameworks with AJAX extensions such as Wicket, Echo2 or Shale. These include:
- Client-side JavaScript toolkits, such as Dojo, which hides the low-level processing of XMLHttpRequest;
- DWR (Direct Web Remoting), which enables RMI-like invocation from the JavaScript client code to backend Java class;
- AJAX-enabled JSF components which allows the building of AJAX apps by dragging-and-dropping UI components;
- Wrapper technology such as jMaki that permits use of AJAX widgets from different sources using common interface; - Java to JavaScript translator technology such as Google Web Toolkit (GWT); and Existing Web app frameworks with AJAX extensions such as Wicket, Echo2 or Shale.
- Do tego co napisałem powyżej jest świetna strona http://www.javapassion.com/ajaxcodecamp/#Presentations
- IBM nazywa to RIA rich Internet Application - oznacza wyposażenie aplikacji klienckich (napisanych jako aplikacje desktop w Javie lub applet na stronie w przeglądarce) w możliwość pobierania danych z serwera.
- http://www.adtmag.com/article.aspx?id=18795 - Artykuł o kolejnym produkcie typu Grid - nazywa się ActiveGrid Studio 2.0. Wnosi technologię Web 2.0 i LAMP w środowisko serwerów Java (Apache Tomcat, BEA WebLogic, IBM Websphere, Sun Java System Application Server and JBOSS). Drugim produktem jest ActiveGrid Server 2.0 - serwer aplikacji umożliwiający na instalację aplikacji Web 2.0 na "zwykłych" serwerach (posiada mechanizm cache, LDAP, load balancing i dashboard-y). Wersja open source obu produktów udostępniana jest na zasadzie licencji Apache Software License 2.0.Cena wersji komercyjnych - od $8,000 do $12,000 rocznie.
Nowe kryteria serwera aplikacyjnego
Kryteria wyboru serwera aplikacyjnego:
- Administracja (lokalna/zdalna, interfejs GUI/tekstowy/przeglądarka, wsparcie dla SNMP do konfigurowania/monitoringu pracy, tworzenie kopii),
- Skalowalność/Rozwijalność-przyszłościowość (architektura 32/64 bity, zgodność z J2EE (w jakiej wersji?), certyfikat z JSEE (wersja?), IPv6, klastry/farmy, wsparcie dla wirtualizacji, tranzakcyjność, odporność na awarie sprzętowe/bazodanowe/aplikacyjne, łagodne wychodzenie z awarii),
- Programowalność (języki kompilowane/skrypty interpretowane),
- Bezpieczeństwo (SSO, LDAP, SSL, firewall, proxy, wsparcie dla AD),
- Wsparcie (SLA, QLA),
- Architektura (C/S, cienki klient, przeglądarka internetowa)
Co z tym ciałem (Flashem)?
- "Chizen said that Adobe intends to work more in open source, although he said that it does poses a challenge for the company. Adobe on Tuesday announced that it will provide the ActionScript Virtual Machine--software to run JavaScript andActionScript programs--to the Mozilla Foundation for inclusion in future versions of the FireFox browser. "You'll see us participate more (in open source). We're going to have to walk this fine line between open standards and open source," he said. "Where we want to make money, it's hard to be completely open source because we do need to continue to generate revenue," he said. O'Reilly noted that Microsoft is increasingly seeking to steal away customers from Adobe, notably Web designers and graphics designers."
Własnie mam Acrobat Reader 8. Umozliwia on m.in. tworzenie z poziomu Readera plików PDF (usluga sieciowa ws -LiveCycle). Łączy się w tle z serwerem Adobe w celu aktualizacji swego kodu i propozycji reklamowych)
środa, grudnia 06, 2006
Kryteria wyboru narzędzi
Kryteria wyboru :
|
|
wtorek, grudnia 05, 2006
Swietny pomysł
Nowosc! Korporacyjna wyszukiwarka Google dostepna od teraz w Polsce!
Czy nie byloby wspaniale, gdyby wyszukiwanie w obrebie firmy bylo równie proste jak na Google.pl? Dzieki produktom korporacyjnym Google bedziesz mógl zaoferowac swoim pracownikom proste, szybkie i bezpieczne wyszukiwanie w obrebie wszystkich danych firmowych, w tym intranetów, systemów do zarzadzania dokumentami i tresciami, serwerów plików, komputerów pracowników i aplikacji biznesowych, takich jak CRM i business intelligence. Równiez na swojej publicznej stronie WWW mozesz udostepnic klientom i partnerom biznesowym wyszukiwarke o jakosci, do której przyzwyczail ich Google
Co tam nowego w Java Card 2.2?
Nowe podejście do kart kryptograficznych (od strony Java CARD)
- http://www.enigma.com.pl/index.php?option=com_content&task=view&id=183&Itemid=155
- http://security.computerworld.pl/news/79172.html
- http://java.sun.com/products/javacard/dev_kit.html
- http://home.elka.pw.edu.pl/~pnazimek/index.php?lang=pl&page=36
Wyposażenie oprogramowania w kartach w VJM (wirtulaną maszynę Java) poprzez co uzyskuje się jednakową, niezleżną od platformy sprzętowej możliwość komunikacji między kartą a np. appletem na stronie internetowej (oczywiście aplet musi być podpisany). Ostatnie łącze stanowi skarbnicę wiedzy jak samemu oprogramować karty inteligentne w tym SIM w telefonach, karty kryptograficzne, bankowe, lojalnościowe itd. Wszystko dzięki standardowi Java CARD 2.2. staje się jasne i proste. Autor udostępnił dokumentację w pdf i masę przykładów w pliku zip. Prawdziwa perełka.
Inną perełką pełną przykladów jest strona www.jensign.com. Jej autor (MVP z MS) początkowo widząc popularność jaką się ciszy ta strona chciał ją na wiosnę tego roku sprzedać (przedtem zabezpieczył informacje na niej). Ale oczywiście nikt nie chciał tego kupić. Rad nie rad ponownie ją otworzył z jeszcze większą ilością informacji (być może znalazł tajemniczego sponsora, moż to jest MS?).
Nowosci o podpisie
Świetny artykuł z MSDN - "Building Browser Helper Objects with Visual Studio 2005 Tony Schreiner, John Sudds Microsoft Corporation October 27, 2006" w C++
Frima Sputnik zajmuje się upowszechnieniem podpisu wraz z Sigillum - http://www.nowoczesnagmina.pl/About.aspx - korzysta z appletu Java. Karta jest wykonana zgodnie ze standardem - Java Card™ 2.2. tel. kontaktowy - 801 886644
Matrix - firma polska ->Technologie: Java 2 Enterprise Edition, Applety, PKI, karty kryptograficzne - PKSC#11.
Komunikat ostrzeżenie na stronę portalu AS -
- *) Z dniem 11.07.2006 r. firma Microsoft Corporation wstrzymała ostatecznie aktualizację zabezpieczeń dla systemów operacyjnych Microsoft Windows 98, 98 SE oraz ME. W związku z powyższym, ze względu na zachowanie najwyższego stopnia bezpieczeństwa w trakcie składania podpisu elektronicznego, zalecamy Państwu instalowanie naszego oprogramowania wyłącznie na stacjach roboczych z systemem operacyjnym Microsoft Windows NT lub Microsoft Windows XP.
Certum (Unizeto) jest na liście CA/O forum. Co nowego w podpisie u nich:
- 2006-10-23 -Nowe usługi kwalifikowane Powszechnego Centrum Certyfikacji CERTUM
W dniu 17.10.2006 r. Powszechne Centrum Certyfikacji CERTUM należące do Unizeto Technologies, jako pierwsze w Polsce uzyskało zaświadczenie Narodowego Centrum Certyfikacji (NCCert) umożliwiające rozszerzenie zakresu dotychczas świadczonych usług kwalifikowanych o kolejne trzy usługi:
- weryfikację statusu certyfikatów w trybie online (OCSP) - Kwalifikowane OCSP
Usługa polegająca na wystawianiu elektronicznego zaświadczenia potwierdzającego, że weryfikowany certyfikat jest certyfikatem kwalifikowanym i ważnym w momencie weryfikacji. Pozwala na sprawdzenie statusu certyfikatów kwalifikowanych wszystkich wystawców w Polsce.
Usługa realizowana według „Polityki certyfikacji” spełniającej wymagania ustawy o podpisie elektronicznym, podlegająca audytom Ministra Gospodarki i na jego wniosek wpisana do rejestru usług kwalifikowanych związanych z podpisem elektronicznym.
walidację danych (DVCS),
- poświadczanie odbioru i przedłożenia (DA).
- weryfikację statusu certyfikatów w trybie online (OCSP) - Kwalifikowane OCSP
- Status certyfikatu - OCSP (ang. Online Certificate Status Protocol) OCSP (Online Certificate Status Protocol) jest standardem opisującym protokół komunikacyjny pomiędzy systemem informatycznym odbiorcy usług certyfikacyjnych a serwerem usługowym. Protokół ten określa format i strukturę zapytania (żądania) o status certyfikatu oraz format i strukturę odpowiedzi („tokenu”), która zawiera wynik weryfikacji w postaci statusu: „poprawny”, „unieważniony”, „nieznany”.
Wydanie zaświadczenia ze statusem „poprawny” oznacza, że certyfikat jest wystawiony przez jeden z podmiotów, których certyfikaty objęte są usługą OCSP oraz, że podmiot ten na moment udzielania odpowiedzi skutecznie nie unieważnił sprawdzanego certyfikatu.
Korzystanie z zaufanej usługi OCSP jest praktyczniejszą i bardziej „bezpieczną” formą weryfikacji ważności certyfikatu niż przeszukiwanie list unieważnionych certyfikatów (CRL). -
Kwalifikowana usługa OCSP pozwala szybko ustalić status certyfikatu kwalifikowanego wystawionego przez każde z polskich centrów certyfikacji świadczących kwalifikowane usługi certyfikacyjne. Wynik sprawdzenia statusu certyfikatu jest wydawany w postaci zaświadczenia (dokumentu) elektronicznego poświadczonego przez urząd OCSP. Zaświadczenie to stanowi dowód wykonania weryfikacji. Elektroniczne potwierdzenie statusu każdego certyfikatu może być przesłane za pomocą poczty e-mail autorowi zapytania.
Alternatywą do korzystania z usługi OCSP jest „samodzielne” wykonanie weryfikacji ważności certyfikatu poprzez przeglądanie list unieważnionych certyfikatów (CRL). Przeprowadzenie poprawnie takiej weryfikacji obarczone jest sporym ryzykiem związanym z zagrożeniami występującymi w sieci Internet oraz z brakiem posiadania aktualnej wiedzy na temat wszystkich wystawców i typów certyfikatów uznanych za kwalifikowane. Natomiast w przypadku korzystania z usługi OCSP mamy do czynienia z jednym tzw. punktem zaufania; po otrzymaniu odpowiedzi z urzędu OCSP wystarczy sprawdzić autentyczność poświadczenia (podpisu) urzędu za pomocą danych powszechnie znanych, zawartych w zaświadczeniu certyfikacyjnym wydanym przez Narodowe Centrum Certyfikacji na wniosek Ministra Gospodarki. -z tego wynika, ze Certum świadczy centralnie o ważności wszystkich certyfikatów w Polsce.
Zakończenie budowy i organizacji Centrum Danych 30 września 2006 r. zakończył się rozpoczęty 1 lipca 2004 r. projekt "Budowa i organizacja Centrum Danych realizującego misje krytyczne" dofinansowany w ramach Sektorowego Programu Operacyjnego Wzrost Konkurencyjności Przedsiębiorstw, poddziałanie 2.2.1.
- Struktura cennika Certum - wszystko jest płatne - cena biblioteki API dla dewelopera wynosi około 4000 zł (nett), nawet runtime dla użytkownika końcowego (skandal - to wcale nie pomoże w upowszechnieniu podpisu w Polsce!)
- Sigillum też przygotowało bibliotekę API - cena około 5000 zł
Ciekawostki, zagwozdki
Witam!
Łącza na dziś (5.12.2006)
- Portal www.developer.com - zawiera pod portale: jars, codeguru, earthweb, jguru, gamelan
- http://www.developer.com/net/asp/article.php/3644731 - ASP.NET Tip: Testing Web Sites with HttpWebRequest
- http://www.developer.com/net/net/article.php/3643406 - .NET Tip: Testing Network Services with the TcpClient Class
- http://www.developer.com/net/article.php/3483116 - annual awards 2005
- http://www.developer.com/tech/article.php/1557921 - to samo ale dla 2003 roku, zwyciężył Microsoft Visual Studio .NET oraz C#
- http://www.developer.com/lang/other/article.php/3637156 - Top 10 articles za zeszły miesiąc
- http://www.developer.com/net/asp/article.php/981571 - Programming WebForms
- http://www.developer.com/tech/article.php/607001 - Building client-side
Lekkie bazy
- MS SQL Server 2005 Express Edition,
- Oracle udostępnił Oracle 10g Express Edition (Oracle Database XE),
- IBM wystąpil z ofertą DB2 Express-C
- Do tego dołączyli się MySQL z MySQL Community Server (wersja open source, wersja komercyjna nosi nazwę MySQL Enterprise).
Co wybrać? Ostatnio do parametrów doszło kryterium "bezpieczeństwo" - okazało się niedawno, że SQL Server jest bezpieczniejszy od Oracle 10g. Bazowe parametry:
- wydajność,
- intergracja z systemem operacyjnym,
- skalowalność,
- wsparcie dla dodatkowych technologii (XML, raportowanie, CLR, Java),
- uzbrojenie (narzędzia do rozwoju aplikacji i zarządzania bazą)
- wsparcie dla różnych platform (Linux, Unix, Windows)
poniedziałek, grudnia 04, 2006
ActiveX
Jajko czy kura?
Ten odwieczny problem znalazł swoje postać w pytaniu związanym z .NET:
Co lepiej wstawiać? WinForm do WebForm czy WebForm do WinForm?
Na stronach http://www.codeproject.com/cs/miscctrl/htmlwincontrol.asp?df=100&forumid=17987&exp=0&select=1461081 opublikowano sposób właczenie WinForm do WebForm. Pozwala to na włączenie bardzo zaawansowanych kontrolek w stylu ActiveX osadzonych w WinForm do stron internetowych (WebForm). Cenę za co musimy zapłacić jest oczywiście bezpieczeństwo aplikacji internetowej. "OK, let’s return to web application security 101. Web applications must NEVER trust the client (web browser). This is gospel whether the web page interfaces use JavaScript, Flash, ActiveX, Applets, AJAX or any other protocol or language. Every developer should be aware that basic HTTP proxies may alter anything about the HTTP request, even those generated by XHR. Great care should be taken to ensure that all security checks are performed on the server--no exceptions." - cytat ze świetnej pracy na temat rzekomego niebezpieczeństwa stosowania technologii AJAX, który znajduje się na stronach http://www.whitehatsec.com/home/resources/articles/files/myth_busting_ajax_insecurity.html. Nigdy nie ufaj klientowi - to stara zasada i odnosi nie nie tylko do klasycznego rozwiązania (przeglądarki internetowej), ale również i do innych form np. widgetów z Opery czy Yahoo.
Przechodzimy do tematu starego jak świat "uruchamianie ActiveX w środowisku nie IE". Na szczęście mamy parę sprawdzonych rozwiązań dostepnych dla technologii Mozilla. Na stronie http://www.iol.ie/~locka/mozilla/plugin.htm jest wtyczka (plug-in) do wersji FireFox 1.5. Do tego jest świetny artykuł na codeguru o tym jak "Kod zarządzany na stronach WWW (kontrolki .NETw IE)" - http://www.codeguru.pl/article-643.aspx a na codeproject jest inny "Simple way to expose a .NET WinForm control as an ActiveX control in any HTML page" - http://www.codeproject.com/cs/miscctrl/htmlwincontrol.asp?df=100&forumid=17987&exp=0&select=1311281#xx1311281xx (efekt wyszukania w gg 'embedding Winform in WebForm') do tego świetna recenzja ""I suppose that many people find this link like I did and think ActiveX is the only way to expose WinForms to the browser. This is not the case nor is it the best or reccomended method. Please review the following link: http://samples.gotdotnet.com/quickstart/winforms/doc/WinFormsIeSourcing.aspx This is a much simple and straight forward way of embedding .Net WinForms inside of Internet Explorer. I want to add that this is not meant as a diss on the author of this article. He has a good solution to try to expose .Net control as an ActiveX object. I just believe that is not what people are really looking for when they find this. They just require a good way of embedding WinForm inside Internet Explorer"
Jajko czy kura?
Ten odwieczny problem znalazł swoje postać w pytaniu związanym z .NET: Co lepiej wstawiać? WinForm do WebForm czy WebForm do WinForm?
Na stronach http://www.codeproject.com/cs/miscctrl/htmlwincontrol.asp?df=100&forumid=17987&exp=0&select=1461081 opublikowano sposób właczenie WinForm do WebForm. Pozwala to na włączenie bardzo zaawansowanych kontrolek w stylu ActiveX osadzonych w WinForm do stron internetowych (WebForm). Cenę za co musimy zapłacić jest oczywiście bezpieczeństwo aplikacji internetowej.
AJAX - brzytwa w rekach malpy?
Każda przeglądarka ma wbudowany mechanizm wspierający XMLHTTPRequest (XHR). Istotą aplikacji typu Web 2.0 jest pobieranie danych z różnych trzecich serwerów w ten sposób doprowadzając do słynnego "mesh-up" czyli misz-masz. Stwarza to określone zagrożenie dla odbiorcy aplikacji. Na szczęście XHR technologia nie zezwala bezpośrednio na tego rodzaju sztuczki. "XHR has security protections built-in, preventing a user’s browser on Website A from making connections to Website B." Ale są różne obejścia tego ograniczenia. Rozwiązanie polega na stworzenie serwera pośrednika w domenie internetowej tzw. proxy (najczęściej na serwerze internetowym witryny). Odwołanie do witryny B ma przez serwer proxy taka postać http://websiteA/proxy?url=http://websitesB/ - w ten sposób proxy przekazuje żądanie z witryny A do witryny B. Wten sposób można ominąć ograniczenia XHR i apliakcja nie przesyła cookies. Ale w ten sposób witryna A gości odwołania do witryny B. Bezpieczeństwo polega na monitorowaniu do jakich to URL chcą się odwołać strony witryny B. A więc na kontroli i samocenzurze. Odnośnie Cross-Site-Scripting (XSS) to rzeczywiście AJAX na to zezwala, ale stosując wyłącznie JavaScript możemy "osiagnąć" taki sam efekt bez uciekania się do nadmiernej komplikacji w AJAX. Autor (Jeremiah Grossman) zademonstrował to w słynnej prezentacji “Hacking Intranet Websites from the Outside” at BlackHat 2006. Z kolei inna prezentacja pt. “Cross-Site Scripting Worms and Viruses" pokazuje jak możne to osiagnąć poprzez JS.
Zasady bezpiecznej aplikacji internetowej to KROK 1 polegający na:
- uwzględnienie aspektów bezpieczeństwa juz na etapie projektowania aplikacji
- dogłębne sprawdzania danych podanych przez użytkownika
- stosowanie tylko sprawdzonych bibliotek komponentów (dostępnych w branży), obojętne na jakiej licencji (closed lub open source), nie wymyslać na nowo koła (i powtarzać błędy innych) szczególnie przy kryptografii i zarządzaniu sesją.
- bezpieczna koniguracja (separacja usług, zasada najmniejszych przywilejów, wyłączenie usług zbędnych oraz komunikatów o błędach)
- Stałe poszukiwanie i naprawianie ewentualnych usterek. Stały pomiar i ocena podatności na atak (vulnerability assessment)
KROK 2 polega na nieustajacym monitorowaniu i walidacji rozwiązań.