Oprogramowanie komponentowe tworzy się budując aplikację z powtarzalnych elementów . Myślą przewodnią tej idei jest tworzenie aplikacji przez "wkładanie" komponentów software'owych do pewnego rodzaju zasobnika (container). Komponenty mogą być pisane specjalnie dla danej aplikacji, wykorzystane z innych projektów lub zakupione. Jest to metoda tworzenia aplikacji w sposób bardziej niezawodny, szybszy i wymagający mniejszych nakładów finansowych. W wielu aspektach idea ta jest podobna do projektowania zorientowanego obiektowo, jednak komponenty oferują dużo więcej korzyści niż typowa technologia obiektowa (jednym z najbardziej rozpowszechnionych przykładów zasobnika jest Visual Basic, gdzie używane komponenty są zazwyczaj ładowane z dysku lokalnego lub serwera plików).
Rolę zasobnika mogą również pełnić przeglądarki Web. Komponenty zaś mogą być ładowane nie tylko z dysku lokalnego czy serwera plików, lecz również z lokalnego serwera Web, zlokalizowanego w korporacyjnym intranecie lub Internecie.
Technologia umożliwia tworzenie takich stron WWW, do których dane są ładowane łącznie z kodem potrzebnym do ich przetworzenia. Podejście takie pozwala na coś więcej niż tylko tworzenie stron WWW z wymyślną grafiką. Dostawca specjalizowanych serwisów danych może na przykład dostarczać dla tych danych specjalizowane narzędzia prezentacji, umożliwiając użytkownikowi korzystającemu z tych danych manipulowanie nimi. Narzędzia te to komponenty ładowane z sieci stosownie do potrzeb, pracujące wewnątrz zasobnika-przeglądarki webowej.
Jednym ze sposobów tworzenia stron WWW z aktywną zawartością jest zagnieżdżanie na stronach webowych wykonywalnych skryptów - zdefiniowanych w HTML. Można je utworzyć zarówno za pomocą JavaScript firmy Netscape, jak i Visual Basic Script Microsoftu.
Dla bardziej złożonych komponentów te relatywnie proste narzędzia nie są wystarczające - potrzebne jest coś więcej. Dwie najbardziej znane technologie, które mogą mieć zastosowanie w budowaniu złożonych komponentów sprowadzanych metodą download, to aplety Javy i sterowniki ActiveX (formalnie nazwane OLE controls lub OCX).
Ocena mechanizmów ochrony tych dwóch środowisk projektowych w przeważającej mierze sprowadza się do tego, jakiego rodzaju aplikacje mają być z ich pomocą pisane.
Ładowanie komponentu z serwera WWW, zlokalizowanego "gdzieś tam w Internecie", niesie za sobą ryzyko naruszenia bezpieczeństwa środowiska wykonawczego.
Można wyróżnić trzy fundamentalne podejścia do zagadnienia bezpieczeństwa w odniesieniu do komponentów ładowanych z serwerów WWW. Pierwsze to zaufany serwer. Serwery WWW w chronionych intrasieciach mogą być uznawane za bezpieczne w takim sensie, że nie dostarczają komponentów zainfekowanych wirusami lub w inny sposób niszczących system, do którego są sprowadzane i na którym są wykonywane. Podejście drugie to ograniczanie zakresu działania samych komponentów w taki sposób, aby nie mogły wykonywać operacji mogących uszkodzić system lokalny. Podejście to, zwane często metodą "matrycy piaskowej" (sandboxing), może takie bezpieczeństwo gwarantować. Termin wzięty z techniki odlewnictwa, oznacza w tym przypadku, że sprowadzane komponenty mogą "rozlewać" się tylko w określonych granicach: w swojej matrycy piaskowej.
Do wad tej metody należy zaliczyć to, że komponenty w matrycach piaskowych mogą być ograniczane w wykonywaniu funkcji (czasami bardzo nawet użytecznych), takich jak zapis do zbioru na lokalnym dysku maszyny klienta.
Podejście trzecie i zarazem najpewniejsze to cyfrowe sygnowanie każdego komponentu, który może być sprowadzany z sieci. Sygnatura cyfrowa może być sprawdzana przez przeglądarkę odbierającą dany komponent. Jeżeli jest ona poprawna, przeglądarka może być pewna, że komponent został utworzony przez określoną jednostkę zaufaną lub przez własny zespół projektowy - i nie został po drodze zmodyfikowany.
Aplety Javy posługują się metodą pierwszą i drugą. Podobnie jak każdy fragment kodu, mogą one być sprowadzane z serwera zaufanego i są doskonale zaprojektowane pod technikę sandboxing. Przepuszczając każdy kod apletów przez weryfikator, środowisko Javy może z dużym prawdopodobieństwem zagwarantować, że sprowadzane aplety nie "wychylą" się poza zdefiniowane ograniczenia.
Natomiast sterowniki ActiveX posługują się metodą pierwszą - sprowadzania z serwerów zaufanych. Ponieważ są one dostarczane na poziom klienta w formie binarnej - bezpośrednio wykonywalnej - niezwykle trudno wyobrazić sobie, w jaki sposób mogłyby realizować postulat sandboxingu. Ponadto istnieją sytuacje, gdy dopuszczenie komponentu - na przykład do dysku lokalnego - może być bardzo użyteczne; zatem sandboxing nie zawsze jest odpowiedni dla wszystkich aplikacji.