Ĺadny brzuch
Witam.
Mam dwa programy. Wymieniają one między sobą informacje przez sockety.
Jednak ludzie, rzadko zezwalają na połączenie, i wtedy jeden z programów jest "upośledzony" i nie działa tak jak powinien.
Czy jest jakaś możliwość na inne przesyłanie danych?
Windows ma do tego komunikaty. A skoro już powstał temat - może ktoś powiedzieć jak to się odbywa w linuksie (c/c++/pascal ;))?
// @Down: Nice :). Dzięki.
Użytkownik Ali240 edytował ten post 21 lipiec 2007, 14:41
http://en.wikipedia....wiki/Named_pipe
// edit
no i moze byc ogolniej: http://en.wikipedia....s_communication
Użytkownik icek edytował ten post 21 lipiec 2007, 14:33
huh? od tego jest wm_copydata -> GOOGLE !!!
przykład wysyłacza i odbieracza :D
unit SenderMain; { How to send information (String, Image, Record) between two Delphi applications [url="http://delphi.about.com/od/windowsshellapi/a/wm_copydata.htm"]http://delphi.about.com/od/ windowsshellapi/a/wm_copydata.htm[/url] Learn how to send the WM_CopyData message between two Delphi applications to exchange information and make two applications communicate. The accompanying source code demonstrates how to send a string, record (complex data type) and even graphics to another application. ~Zarko Gajic About Delphi Programming [url="http://delphi.about.com"]http://delphi.about.com[/url] } interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type (* Declared in Windows.pas TCopyDataStruct = packed record dwData: DWORD; //up to 32 bits of data to be passed to the receiving application cbData: DWORD; //the size, in bytes, of the data pointed to by the lpData member lpData: Pointer; //Points to data to be passed to the receiving application. This member can be nil. end; *) TCopyDataType = (cdtString = 0, cdtImage = 1, cdtRecord = 2); TSampleRecord = packed record s : string[50]; i : integer; d : TDateTime; end; TSenderMainForm = class(TForm) SendDataButton: TButton; rgCopyOptions: TRadioGroup; Edit1: TEdit; procedure SendDataButtonclick(Sender: TObject); private procedure SendData(copyDataStruct : TCopyDataStruct); procedure SendString(); procedure SendImage(); procedure SendRecord(); public { Public declarations } end; var SenderMainForm: TSenderMainForm; implementation {$R *.dfm} procedure TSenderMainForm.SendData( copyDataStruct: TCopyDataStruct); var receiverHandle : THandle; res : integer; begin receiverHandle := FindWindow(PChar('TReceiverMainForm'),PChar('ReceiverMainForm')); if receiverHandle = 0 then begin ShowMessage('CopyData Receiver NOT found!'); Exit; end; res := SendMessage(receiverHandle, WM_COPYDATA, Integer(Handle), Integer(@copyDataStruct)); if res > 0 then ShowMessage(Format('Receiver has %d lines in Memo!',[res])); end; procedure TSenderMainForm.SendDataButtonclick(Sender: TObject); begin if rgCopyOptions.ItemIndex = -1 then begin ShowMessage('Nothing selected!'); Exit; end; case rgCopyOptions.ItemIndex of 0 : SendString; 1 : SendImage; 2 : SendRecord; end; end; procedure TSenderMainForm.SendImage(); var ms : TMemoryStream; bmp : TBitmap; copyDataStruct : TCopyDataStruct; begin ms := TMemoryStream.Create; try bmp := self.GetFormImage; try bmp.SaveToStream(ms); finally bmp.FreeImage; end; copyDataStruct.dwData := Integer(cdtImage); //use it to identify the message contents copyDataStruct.cbData := ms.Size; copyDataStruct.lpData := ms.Memory; SendData(copyDataStruct); finally ms.Free; end; end; procedure TSenderMainForm.SendRecord(); var sampleRecord : TSampleRecord; copyDataStruct : TCopyDataStruct; begin sampleRecord.s := 'Hello Receiver'; sampleRecord.i := 1973; sampleRecord.d := Now; copyDataStruct.dwData := Integer(cdtRecord); //use it to identify the message contents copyDataStruct.cbData := SizeOf(sampleRecord); copyDataStruct.lpData := @sampleRecord; SendData(copyDataStruct); end; procedure TSenderMainForm.SendString(); var stringToSend : string; copyDataStruct : TCopyDataStruct; begin stringToSend := edit1.Text; copyDataStruct.dwData := Integer(cdtString); //use it to identify the message contents copyDataStruct.cbData := 1 + Length(stringToSend); copyDataStruct.lpData := PChar(stringToSend); SendData(copyDataStruct); end; end.
unit ReceiverMain; { How to send information (String, Image, Record) between two Delphi applications [url="http://delphi.about.com/od/windowsshellapi/a/wm_copydata.htm"]http://delphi.about.com/od/ windowsshellapi/a/wm_copydata.htm[/url] Learn how to send the WM_CopyData message between two Delphi applications to exchange information and make two applications communicate. The accompanying source code demonstrates how to send a string, record (complex data type) and even graphics to another application. ~Zarko Gajic About Delphi Programming [url="http://delphi.about.com"]http://delphi.about.com[/url] } interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TCopyDataType = (cdtString = 0, cdtImage = 1, cdtRecord = 2); TSampleRecord = packed record s : string[50]; i : integer; d : TDateTime; end; TReceiverMainForm = class(TForm) cdMemo: TMemo; receivedImage: TImage; procedure FormCreate(Sender: TObject); private procedure WMCopyData(var Msg : TWMCopyData); message WM_COPYDATA; procedure HandleCopyDataString(copyDataStruct : PCopyDataStruct); procedure HandleCopyDataImage(copyDataStruct : PCopyDataStruct); procedure HandleCopyDataRecord(copyDataStruct : PCopyDataStruct); public { Public declarations } end; var ReceiverMainForm: TReceiverMainForm; implementation {$R *.dfm} { TReceiverMainForm } procedure TReceiverMainForm.FormCreate(Sender: TObject); begin cdMemo.Clear; end; procedure TReceiverMainForm.HandleCopyDataImage( copyDataStruct: PCopyDataStruct); var ms: TMemoryStream; begin ms := TMemoryStream.Create; try ms.Write(copyDataStruct.lpData^, copyDataStruct.cbData); ms.Position := 0; receivedImage.Picture.Bitmap.LoadFromStream(ms); finally ms.Free; end; cdMemo.Lines.Add(Format('Received image at %s',[DateToStr(Now)])); end; procedure TReceiverMainForm.HandleCopyDataRecord( copyDataStruct: PCopyDataStruct); var sampleRecord : TSampleRecord; begin sampleRecord.s := TSampleRecord(copyDataStruct.lpData^).s; sampleRecord.i := TSampleRecord(copyDataStruct.lpData^).i; sampleRecord.d := TSampleRecord(copyDataStruct.lpData^).d; cdMemo.Lines.Add(Format('Received record at %s',[DateToStr(Now)])); cdMemo.Lines.Add(Format('sampleRecord.s = %s',[sampleRecord.s])); cdMemo.Lines.Add(Format('sampleRecord.i = %d',[sampleRecord.i])); cdMemo.Lines.Add(Format('sampleRecord.d = %s',[DateToStr(sampleRecord.d)])); end; procedure TReceiverMainForm.HandleCopyDataString( copyDataStruct: PCopyDataStruct); var s : string; begin s := PChar(copyDataStruct.lpData); cdMemo.Lines.Add(Format('Received string "%s" at %s',[s, DateToStr(Now)])); end; procedure TReceiverMainForm.WMCopyData(var Msg: TWMCopyData); var copyDataType : TCopyDataType; begin copyDataType := TCopyDataType(Msg.CopyDataStruct.dwData); //Handle of the Sender cdMemo.Lines.Add(Format('WM_CopyData from: %d',[msg.From])); case copyDataType of cdtString: HandleCopyDataString(Msg.CopyDataStruct); cdtImage: HandleCopyDataImage(Msg.CopyDataStruct); cdtRecord: HandleCopyDataRecord(Msg.CopyDataStruct); end; //Send something back msg.Result := cdMemo.Lines.Count; end; end.
Witam.
Mam dwa programy. Wymieniają one między sobą informacje przez sockety.
Jednak ludzie, rzadko zezwalają na połączenie, i wtedy jeden z programów jest "upośledzony" i nie działa tak jak powinien.
Czy jest jakaś możliwość na inne przesyłanie danych?
Jest przez ftp
Jest przez ftp
Żartujesz sobie?
Jeżeli aplikacje są uruchomione na jednej maszynie to tak jak mówili moi przedmówcy. Jeżeli są na różnych maszynach to tylko przez sockety. Jeżeli programy komunikują się na odległość to musisz powiadomić userów o konieczności odblokowania programu na firewall'u.
Użytkownik PcSA edytował ten post 21 lipiec 2007, 17:17
Żartujesz sobie?
Jeżeli aplikacje są uruchomione na jednej maszynie to tak jak mówili moi przedmówcy. Jeżeli są na różnych maszynach to tylko przez sockety. Jeżeli programy komunikują się na odległość to musisz powiadomić userów o konieczności odblokowania programu na firewall'u.
W cale nie zartuje. Aplikacja moze pobierac rozkazy z serwera np co 1 sekunde. Nie ma potrzeby wówczas zdejmowania jakichklwiek blokat na firewalu. wiele trojanów tak funkcjonuje.
heh...wymyślasz ;]
ja potrzebuje zaaktualizowac tylko jednego edita ;]
Zaraz rozpracuje to co mi dał tsukuyomi_reload
W cale nie zartuje. Aplikacja moze pobierac rozkazy z serwera np co 1 sekunde. Nie ma potrzeby wówczas zdejmowania jakichklwiek blokat na firewalu. wiele trojanów tak funkcjonuje.
Chyba jednak żartujesz. Po pierwsze - bez sensu. Po drugie - przecież wywołujesz połączenie - firewall momentalnie wyłapie tą aplikację i będzie pytał czy blokować. Nie wiem skąd przyszło Ci do głowy, że tak ominiesz firewall. No chyba że Twój korzysta tylko ze zdefiniowanych reguł ogólnych i nie blokuje domyślnie wszystkich nieznanych aplikacji...
Chyba jednak żartujesz. Po pierwsze - bez sensu. Po drugie - przecież wywołujesz połączenie - firewall momentalnie wyłapie tą aplikację i będzie pytał czy blokować. Nie wiem skąd przyszło Ci do głowy, że tak ominiesz firewall. No chyba że Twój korzysta tylko ze zdefiniowanych reguł ogólnych i nie blokuje domyślnie wszystkich nieznanych aplikacji...
Zapewniam ciebie ze nie zartuje. Firewall nie zapyta cie jesli aplikacja pobiera plik z serwera ftp. zapyta natomiast przy polaczeniu przez sockety. Sprawdz sam :P
Użytkownik statjacek edytował ten post 21 lipiec 2007, 21:40
Zapewniam ciebie ze nie zartuje. Firewall nie zapyta cie jesli aplikacja pobiera plik z serwera ftp. zapyta natomiast przy polaczeniu przez sockety. Sprawdz sam :P
Ale o czym Ty mówisz, bo chyba Cię nie rozumiem? Co nazywasz socketem? Przy łączeniu się z czymkolwiek robisz to przez gniazdka. Jak dotąd wszelkie firewalle windowsowe jakich używałem pytały mnie jak aplikacja starała się w ogóle wywołać jakiekolwiek połączenie, a to na jakim porcie kompletnie nie miało znaczenia. Firewall miał w nosie czy aplikacja wywołuje port 21, 80, 8080 czy jakiś "nieznany". Zawszę pytał mnie czy utworzyć regułę dla programu (nie mówię o domyślnym windowsowym, bo nie korzystałem).
prócz rurek które podał icek to ja dodam jeszcze że na Windowsie można skorzystać z COM(na linuch odpowiednikiem tego możebyć mozillowskie XPCOM które pod windą też działa :) )
Ale o czym Ty mówisz, bo chyba Cię nie rozumiem? Co nazywasz socketem? Przy łączeniu się z czymkolwiek robisz to przez gniazdka. Jak dotąd wszelkie firewalle windowsowe jakich używałem pytały mnie jak aplikacja starała się w ogóle wywołać jakiekolwiek połączenie, a to na jakim porcie kompletnie nie miało znaczenia. Firewall miał w nosie czy aplikacja wywołuje port 21, 80, 8080 czy jakiś "nieznany". Zawszę pytał mnie czy utworzyć regułę dla programu (nie mówię o domyślnym windowsowym, bo nie korzystałem).
Już wyjasniam: To co zaobserwowaleś dotyczy łaczenia się programów np. przez IdTCPClient i IdTCPserver. Firewall na komputerze gdzie jest IdTCPserver wywali komunkat o którym pisałeś. Jeśli natomiast zechcesz połączyć dwie aplikacje które będą pobierały rozkazy z sewera przy pomocy IdFtp w postaci pliku tekstowego to wowczas firewall nie wywali zadnego komunikatu (mam tu na myśli firewall ten windosowski)
Już wyjasniam: To co zaobserwowaleś dotyczy łaczenia się programów np. przez IdTCPClient i IdTCPserver. Firewall na komputerze gdzie jest IdTCPserver wywali komunkat o którym pisałeś. Jeśli natomiast zechcesz połączyć dwie aplikacje które będą pobierały rozkazy z sewera przy pomocy IdFtp w postaci pliku tekstowego to wowczas firewall nie wywali zadnego komunikatu (mam tu na myśli firewall ten windosowski) Nazywanie tego czegos w windowsie firewallem zakrawa mi tu na grzech :lol2:
Wiec widzisz, znalazles jakis bubel tegoz 'firewalla'.
Kazdy dobry firewall wylapie najmniejsze oznaki ruchu na ktorymkolwiek z portow. Jezeli tego nie robi to jest dziurawy, a wiec zbedny. :P
Nazywanie tego czegos w windowsie firewallem zakrawa mi tu na grzech :lol2:
Wiec widzisz, znalazles jakis bubel tegoz 'firewalla'.
Kazdy dobry firewall wylapie najmniejsze oznaki ruchu na ktorymkolwiek z portow. Jezeli tego nie robi to jest dziurawy, a wiec zbedny. :P
To mam pytanie proszę podaj mi nazwe firewalla, który wyłapie ruchy także przez ftp? Mam tu namyśli wysyłanie i odbieranie. Tylko obawiam się ze cos takiego nie istnieje :P . a może jest jeszcze firewall jakiś co wyłapuje ruchy przez http :P :lol2:
Użytkownik statjacek edytował ten post 22 lipiec 2007, 11:20
OMG sorry statjacek ale naprawdę już nie mogę ścierpieć co za głupoty piszesz. Każdy firewall coś takiego wyłapie (praktycznie każdy ruch po sieci w tym te ftp ;P). Używam Kerio Personal Firewall i wykrywa i każdy normalny będzie wykrywać. Ten w windowsie to shit, dlatego zezwala.
Poza tym widać, że w ogóle nie jesteś w temacie z komunikacją między aplikacjami. Jak się nie znasz to się nie wypowiadaj. To nie pierwszy raz kiedy w moim odczuciu wypisujesz głupoty właśnie w tym dziale. Więc radzę Ci za każdym razem kiedy coś piszesz zastanów się czy Twoje rozwiązanie ma sens, bo pisać głupoty to każdy jeden potrafi.
Użytkownik PcSA edytował ten post 22 lipiec 2007, 12:21
statjacek ~ firewalle z reguly wykrywaja ruch na poziomie IP (w tym TCP i UDP), wiec co takiego wyjatkowego jest w FTP i HTTP (poza standardowymi portami TCP), ze firewall mialby nie umiec tego wylapac? (pisze umiec bo zakladam, ze jednak defaultowe reguly nie sa tak restrykcyjne - nie uzywam wiec nie wiem). A jesli chodzi o komunikacje to radze sie nauczyc uzywania rzeczy ktore zostaly stworzone do danego celu - FTP sluzy do transferowania plikow.
OMG sorry statjacek ale naprawdę już nie mogę ścierpieć co za głupoty piszesz. Każdy firewall coś takiego wyłapie (praktycznie każdy ruch po sieci w tym te ftp ;P). Używam Kerio Personal Firewall i wykrywa i każdy normalny będzie wykrywać. Ten w windowsie to shit, dlatego zezwala.
Poza tym widać, że w ogóle nie jesteś w temacie z komunikacją między aplikacjami. Jak się nie znasz to się nie wypowiadaj. To nie pierwszy raz kiedy w moim odczuciu wypisujesz głupoty właśnie w tym dziale. Więc radzę Ci za każdym razem kiedy coś piszesz zastanów się czy Twoje rozwiązanie ma sens, bo pisać głupoty to każdy jeden potrafi.
Nie urzywalem innego firewalla jak tylko windosowski. Jak bede miał okazje to to sprawdze.
Jestem w temacie jeśli chodzi o komunikowanie się miedzy aplikacjami. Może wiec powiesz mi jaką głupote napisałem w/w temacie?
Nie urzywalem innego firewalla jak tylko windosowski. Jak bede miał okazje to to sprawdze.
Jestem w temacie jeśli chodzi o komunikowanie się miedzy aplikacjami. Może wiec powiesz mi jaką głupote napisałem w/w temacie?
Windowsowski jest najwidoczniej mocno upośledzony. Doradziłeś komunikację via FTP. Co w tym złego?
Skoro programy działają na tym samym komputerze (wynika to z pytania), to po co w ogóle angażować zewnętrzne komputery? Od czego są komunikaty, etc?
Firewall (to że windowsowski jest popierniczony już ustaliliśmy) zablokuje połączenie niezależnie od gniazda. Jeżeli zakładamy że port 21 jest dla jakiegoś firewalla domyślnie 'bezpieczny' (idiotyzm, ale widać m$ o tym nie wie), to już o niebo lepiej sobie nasłuchiwać na 21 i tak się łączyć niż walić dane w sieć.
// Ja korzystałem choćby z Sygate Personal Firewall czy Ashampoo (~).
// A i żeby nie było - można komunikować się przez FTP. Tylko tak jak pisałem, nie rozwiąże to problemu firewalla. Poza tym, ja raczej do domu wolę wchodzić przez drzwi frontowe niż przez właz na dachu, mimo iż na upartego by się dało ;).
Użytkownik Ali240 edytował ten post 22 lipiec 2007, 14:12
Windowsowski jest najwidoczniej mocno upośledzony. Doradziłeś komunikację via FTP. Co w tym złego?
Skoro programy działają na tym samym komputerze (wynika to z pytania), to po co w ogóle angażować zewnętrzne komputery? Od czego są komunikaty, etc?
Firewall (to że windowsowski jest popierniczony już ustaliliśmy) zablokuje połączenie niezależnie od gniazda. Jeżeli zakładamy że port 21 jest dla jakiegoś firewalla domyślnie 'bezpieczny' (idiotyzm, ale widać m$ o tym nie wie), to już o niebo lepiej sobie nasłuchiwać na 21 i tak się łączyć niż walić dane w sieć.
// Ja korzystałem choćby z Sygate Personal Firewall czy Ashampoo (~).
Zaraz chwileczke jeśli programy działają w tym samym komputerze to istotnie masz racje. Tylko o tym nie było tu mowy, że programy działają w tym samym komputerze. No chyba że coś przeoczylem.
Ale gdyby nawet działały na różnych komputerach to ruch po ftp jest wolniejszy, bo więcej poleceń (zapytań) musisz wysłać do serwera na starcie. Poza tym z uporem maniaka próbujesz wcisnąć, że ruchu na porcie na którym jest ftp jest zawsze otwarty i jest nie monitorowany przez aplikacje typu firewall.
Ale gdyby nawet działały na różnych komputerach to ruch po ftp jest wolniejszy, bo więcej poleceń (zapytań) musisz wysłać do serwera na starcie. Poza tym z uporem maniaka próbujesz wcisnąć, że ruchu na porcie na którym jest ftp jest zawsze otwarty i jest nie monitorowany przez aplikacje typu firewall.
Zaraz chwileczke autor tematu napisał:
Witam.
Mam dwa programy. Wymieniają one między sobą informacje przez sockety.
Jednak ludzie, rzadko zezwalają na połączenie, i wtedy jeden z programów jest "upośledzony" i nie działa tak jak powinien.
Czy jest jakaś możliwość na inne przesyłanie danych?
Z tego co wiem niewielu ludzi korzysta z innego firewalla jak windosowski. Tak więc na wiekszości komputerow ftp jest zawsze otwarte.
Użytkownik statjacek edytował ten post 22 lipiec 2007, 15:58
Z tego co wiem niewielu ludzi korzysta z innego firewalla jak windosowski. Tak więc na wiekszości komputerow ftp jest zawsze otwarte.
Nie wiem, może ja inaczej wnioskuje, ale skoro autor wykluczył sockety to imo musi to działać lokalnie. Ale mniejsza o to. Co do powyższego - jeżeli stosujesz politykę że "większość ludzi korzysta z" to już tylko i wyłącznie Twój problem. Ja uważam iż jest to głupie. Takie założenia można przyjmować tworząc conajwyżej wirusa, a nie program dla użytkownika. Przez tego typu polityki cierpią ludzie używający linuksa. Choć pewnie ich nie dostrzegasz bo przecież większość ma windowsa... Nie chodzi mi o to żeby się kłócić, ale nie propaguj takiej polityki wśród innych. A co do firewalla windowsowskiego - skoro puszcza na 21 to zapewne nie sprawdza co tam przechodzi, więc dużo łatwiej jest sobie zrobić połączenie na tym porcie niż korzystać z ftp (no chyba że ta genialna reguła nie dotyczy połączeń przychodzących ;)).
co do FTP to np firewall w Kasperskim pyta się czy pozwolić na połączenie (stawiając serwer) sam testowałem używając komponentu indy.A co do windowsowskiego "firewalla" to trudno go nazwać firewallem:) Chodź ten on Visty jest lepszy od tego w XP
Nie wiem, może ja inaczej wnioskuje, ale skoro autor wykluczył sockety to imo musi to działać lokalnie. Ale mniejsza o to. Co do powyższego - jeżeli stosujesz politykę że "większość ludzi korzysta z" to już tylko i wyłącznie Twój problem. Ja uważam iż jest to głupie. Takie założenia można przyjmować tworząc conajwyżej wirusa, a nie program dla użytkownika. Przez tego typu polityki cierpią ludzie używający linuksa. Choć pewnie ich nie dostrzegasz bo przecież większość ma windowsa... Nie chodzi mi o to żeby się kłócić, ale nie propaguj takiej polityki wśród innych. A co do firewalla windowsowskiego - skoro puszcza na 21 to zapewne nie sprawdza co tam przechodzi, więc dużo łatwiej jest sobie zrobić połączenie na tym porcie niż korzystać z ftp (no chyba że ta genialna reguła nie dotyczy połączeń przychodzących ;)).
zanstalowalem wlasnie fireware z experta McAfee. On rzeczywiście pyta przy probie połączenia z ftp. Jest niewatpliwie lepszy dla mnie od tego z windows. Jest wielu roznych ludzi, ktorzy korzystaja z neta. Wiekszosc z nich ma niewielkie pojecie. Wyobrazam sobie ze jesli by Microsoft zastosowa taka polityke w swoim firewallu to ludzie by sie bali instalowania wielu programow poniewaz: aktualizuja sie one przez internet, sprawdzaja czy jest nowsza wersja, wymagaja rejestracji. Tak wiec slowo lepszy nie znaczy ze jest lepszy dla kazdego.
zanstalowalem wlasnie fireware z experta McAfee. On rzeczywiście pyta przy probie połączenia z ftp. Jest niewatpliwie lepszy dla mnie od tego z windows. Jest wielu roznych ludzi, ktorzy korzystaja z neta. Wiekszosc z nich ma niewielkie pojecie. Wyobrazam sobie ze jesli by Microsoft zastosowa taka polityke w swoim firewallu to ludzie by sie bali instalowania wielu programow poniewaz: aktualizuja sie one przez internet, sprawdzaja czy jest nowsza wersja, wymagaja rejestracji. Tak wiec slowo lepszy nie znaczy ze jest lepszy dla kazdego.
Robi się małe ot, ale jakieś tam powiązanie z tematem jeszcze jest ;).
Jednym odpowiada innym nie - kwestia gustu. Ale wg mnie jeżeli już wprowadza się firewall systemowy, to powinien umożliwiać on kompletną ochronę. Przecież dodanie jednego okienka przy instalacji to nie problem - windows powinien mieć opcję wyboru typu ochrony komputera - standardowa umożliwiająca dostęp do standardowych usług jak http czy ftp oraz zaawansowana dająca większą kontrolę. Zauważ, że to że domyślnie dopuszcza takie połączenia jest poważną wadą i jest to wada dla każdego, pomimo iż nie zawsze się to dostrzega - umożliwia na niezauważalne wydostanie się poufnych danych, a konkretniej - pozwala wirusom na pozostanie niezauważonym. Gdy firewall pyta Cię o każdy program, fakt jest to na początku upierdliwe, ale da się znieść, to taka sytuacja zostaje wykluczona - zauważysz że jakiś nieznany program nagle łączy się z netem nie wiadomo z jakiej paki. Także sposób działania firewall'a windowsowego może wydawać się lepszym dla niektórych, ale z całą pewnością nie możemy go uznać lepszym, niezależnie na jaką grupę docelową spojrzymy.
A tak swoją drogą to w viscie zrobili tyle upierdliwych potwierdzeń na wzór linuksa (a może mac'a? :)), no i wyszedł niewypał, że jakby dodali jeszcze pytania dla firewall'a to pewnie większość programów by user zatwierdził automatycznie - już by miał dość potwierdzania wszystkiego (prawie każda instalacja!) i by ciągle klikał [tak] bez czytania ;).
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Mam dwa programy. Wymieniają one między sobą informacje przez sockety.
Jednak ludzie, rzadko zezwalają na połączenie, i wtedy jeden z programów jest "upośledzony" i nie działa tak jak powinien.
Czy jest jakaś możliwość na inne przesyłanie danych?
Windows ma do tego komunikaty. A skoro już powstał temat - może ktoś powiedzieć jak to się odbywa w linuksie (c/c++/pascal ;))?
// @Down: Nice :). Dzięki.
Użytkownik Ali240 edytował ten post 21 lipiec 2007, 14:41
http://en.wikipedia....wiki/Named_pipe
// edit
no i moze byc ogolniej: http://en.wikipedia....s_communication
Użytkownik icek edytował ten post 21 lipiec 2007, 14:33
huh? od tego jest wm_copydata -> GOOGLE !!!
przykład wysyłacza i odbieracza :D
unit SenderMain; { How to send information (String, Image, Record) between two Delphi applications [url="http://delphi.about.com/od/windowsshellapi/a/wm_copydata.htm"]http://delphi.about.com/od/ windowsshellapi/a/wm_copydata.htm[/url] Learn how to send the WM_CopyData message between two Delphi applications to exchange information and make two applications communicate. The accompanying source code demonstrates how to send a string, record (complex data type) and even graphics to another application. ~Zarko Gajic About Delphi Programming [url="http://delphi.about.com"]http://delphi.about.com[/url] } interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type (* Declared in Windows.pas TCopyDataStruct = packed record dwData: DWORD; //up to 32 bits of data to be passed to the receiving application cbData: DWORD; //the size, in bytes, of the data pointed to by the lpData member lpData: Pointer; //Points to data to be passed to the receiving application. This member can be nil. end; *) TCopyDataType = (cdtString = 0, cdtImage = 1, cdtRecord = 2); TSampleRecord = packed record s : string[50]; i : integer; d : TDateTime; end; TSenderMainForm = class(TForm) SendDataButton: TButton; rgCopyOptions: TRadioGroup; Edit1: TEdit; procedure SendDataButtonclick(Sender: TObject); private procedure SendData(copyDataStruct : TCopyDataStruct); procedure SendString(); procedure SendImage(); procedure SendRecord(); public { Public declarations } end; var SenderMainForm: TSenderMainForm; implementation {$R *.dfm} procedure TSenderMainForm.SendData( copyDataStruct: TCopyDataStruct); var receiverHandle : THandle; res : integer; begin receiverHandle := FindWindow(PChar('TReceiverMainForm'),PChar('ReceiverMainForm')); if receiverHandle = 0 then begin ShowMessage('CopyData Receiver NOT found!'); Exit; end; res := SendMessage(receiverHandle, WM_COPYDATA, Integer(Handle), Integer(@copyDataStruct)); if res > 0 then ShowMessage(Format('Receiver has %d lines in Memo!',[res])); end; procedure TSenderMainForm.SendDataButtonclick(Sender: TObject); begin if rgCopyOptions.ItemIndex = -1 then begin ShowMessage('Nothing selected!'); Exit; end; case rgCopyOptions.ItemIndex of 0 : SendString; 1 : SendImage; 2 : SendRecord; end; end; procedure TSenderMainForm.SendImage(); var ms : TMemoryStream; bmp : TBitmap; copyDataStruct : TCopyDataStruct; begin ms := TMemoryStream.Create; try bmp := self.GetFormImage; try bmp.SaveToStream(ms); finally bmp.FreeImage; end; copyDataStruct.dwData := Integer(cdtImage); //use it to identify the message contents copyDataStruct.cbData := ms.Size; copyDataStruct.lpData := ms.Memory; SendData(copyDataStruct); finally ms.Free; end; end; procedure TSenderMainForm.SendRecord(); var sampleRecord : TSampleRecord; copyDataStruct : TCopyDataStruct; begin sampleRecord.s := 'Hello Receiver'; sampleRecord.i := 1973; sampleRecord.d := Now; copyDataStruct.dwData := Integer(cdtRecord); //use it to identify the message contents copyDataStruct.cbData := SizeOf(sampleRecord); copyDataStruct.lpData := @sampleRecord; SendData(copyDataStruct); end; procedure TSenderMainForm.SendString(); var stringToSend : string; copyDataStruct : TCopyDataStruct; begin stringToSend := edit1.Text; copyDataStruct.dwData := Integer(cdtString); //use it to identify the message contents copyDataStruct.cbData := 1 + Length(stringToSend); copyDataStruct.lpData := PChar(stringToSend); SendData(copyDataStruct); end; end.
unit ReceiverMain; { How to send information (String, Image, Record) between two Delphi applications [url="http://delphi.about.com/od/windowsshellapi/a/wm_copydata.htm"]http://delphi.about.com/od/ windowsshellapi/a/wm_copydata.htm[/url] Learn how to send the WM_CopyData message between two Delphi applications to exchange information and make two applications communicate. The accompanying source code demonstrates how to send a string, record (complex data type) and even graphics to another application. ~Zarko Gajic About Delphi Programming [url="http://delphi.about.com"]http://delphi.about.com[/url] } interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TCopyDataType = (cdtString = 0, cdtImage = 1, cdtRecord = 2); TSampleRecord = packed record s : string[50]; i : integer; d : TDateTime; end; TReceiverMainForm = class(TForm) cdMemo: TMemo; receivedImage: TImage; procedure FormCreate(Sender: TObject); private procedure WMCopyData(var Msg : TWMCopyData); message WM_COPYDATA; procedure HandleCopyDataString(copyDataStruct : PCopyDataStruct); procedure HandleCopyDataImage(copyDataStruct : PCopyDataStruct); procedure HandleCopyDataRecord(copyDataStruct : PCopyDataStruct); public { Public declarations } end; var ReceiverMainForm: TReceiverMainForm; implementation {$R *.dfm} { TReceiverMainForm } procedure TReceiverMainForm.FormCreate(Sender: TObject); begin cdMemo.Clear; end; procedure TReceiverMainForm.HandleCopyDataImage( copyDataStruct: PCopyDataStruct); var ms: TMemoryStream; begin ms := TMemoryStream.Create; try ms.Write(copyDataStruct.lpData^, copyDataStruct.cbData); ms.Position := 0; receivedImage.Picture.Bitmap.LoadFromStream(ms); finally ms.Free; end; cdMemo.Lines.Add(Format('Received image at %s',[DateToStr(Now)])); end; procedure TReceiverMainForm.HandleCopyDataRecord( copyDataStruct: PCopyDataStruct); var sampleRecord : TSampleRecord; begin sampleRecord.s := TSampleRecord(copyDataStruct.lpData^).s; sampleRecord.i := TSampleRecord(copyDataStruct.lpData^).i; sampleRecord.d := TSampleRecord(copyDataStruct.lpData^).d; cdMemo.Lines.Add(Format('Received record at %s',[DateToStr(Now)])); cdMemo.Lines.Add(Format('sampleRecord.s = %s',[sampleRecord.s])); cdMemo.Lines.Add(Format('sampleRecord.i = %d',[sampleRecord.i])); cdMemo.Lines.Add(Format('sampleRecord.d = %s',[DateToStr(sampleRecord.d)])); end; procedure TReceiverMainForm.HandleCopyDataString( copyDataStruct: PCopyDataStruct); var s : string; begin s := PChar(copyDataStruct.lpData); cdMemo.Lines.Add(Format('Received string "%s" at %s',[s, DateToStr(Now)])); end; procedure TReceiverMainForm.WMCopyData(var Msg: TWMCopyData); var copyDataType : TCopyDataType; begin copyDataType := TCopyDataType(Msg.CopyDataStruct.dwData); //Handle of the Sender cdMemo.Lines.Add(Format('WM_CopyData from: %d',[msg.From])); case copyDataType of cdtString: HandleCopyDataString(Msg.CopyDataStruct); cdtImage: HandleCopyDataImage(Msg.CopyDataStruct); cdtRecord: HandleCopyDataRecord(Msg.CopyDataStruct); end; //Send something back msg.Result := cdMemo.Lines.Count; end; end.
Witam.
Mam dwa programy. Wymieniają one między sobą informacje przez sockety.
Jednak ludzie, rzadko zezwalają na połączenie, i wtedy jeden z programów jest "upośledzony" i nie działa tak jak powinien.
Czy jest jakaś możliwość na inne przesyłanie danych?
Jest przez ftp
Jest przez ftp
Żartujesz sobie?
Jeżeli aplikacje są uruchomione na jednej maszynie to tak jak mówili moi przedmówcy. Jeżeli są na różnych maszynach to tylko przez sockety. Jeżeli programy komunikują się na odległość to musisz powiadomić userów o konieczności odblokowania programu na firewall'u.
Użytkownik PcSA edytował ten post 21 lipiec 2007, 17:17
Żartujesz sobie?
Jeżeli aplikacje są uruchomione na jednej maszynie to tak jak mówili moi przedmówcy. Jeżeli są na różnych maszynach to tylko przez sockety. Jeżeli programy komunikują się na odległość to musisz powiadomić userów o konieczności odblokowania programu na firewall'u.
W cale nie zartuje. Aplikacja moze pobierac rozkazy z serwera np co 1 sekunde. Nie ma potrzeby wówczas zdejmowania jakichklwiek blokat na firewalu. wiele trojanów tak funkcjonuje.
heh...wymyślasz ;]
ja potrzebuje zaaktualizowac tylko jednego edita ;]
Zaraz rozpracuje to co mi dał tsukuyomi_reload
W cale nie zartuje. Aplikacja moze pobierac rozkazy z serwera np co 1 sekunde. Nie ma potrzeby wówczas zdejmowania jakichklwiek blokat na firewalu. wiele trojanów tak funkcjonuje.
Chyba jednak żartujesz. Po pierwsze - bez sensu. Po drugie - przecież wywołujesz połączenie - firewall momentalnie wyłapie tą aplikację i będzie pytał czy blokować. Nie wiem skąd przyszło Ci do głowy, że tak ominiesz firewall. No chyba że Twój korzysta tylko ze zdefiniowanych reguł ogólnych i nie blokuje domyślnie wszystkich nieznanych aplikacji...
Chyba jednak żartujesz. Po pierwsze - bez sensu. Po drugie - przecież wywołujesz połączenie - firewall momentalnie wyłapie tą aplikację i będzie pytał czy blokować. Nie wiem skąd przyszło Ci do głowy, że tak ominiesz firewall. No chyba że Twój korzysta tylko ze zdefiniowanych reguł ogólnych i nie blokuje domyślnie wszystkich nieznanych aplikacji...
Zapewniam ciebie ze nie zartuje. Firewall nie zapyta cie jesli aplikacja pobiera plik z serwera ftp. zapyta natomiast przy polaczeniu przez sockety. Sprawdz sam :P
Użytkownik statjacek edytował ten post 21 lipiec 2007, 21:40
Zapewniam ciebie ze nie zartuje. Firewall nie zapyta cie jesli aplikacja pobiera plik z serwera ftp. zapyta natomiast przy polaczeniu przez sockety. Sprawdz sam :P
Ale o czym Ty mówisz, bo chyba Cię nie rozumiem? Co nazywasz socketem? Przy łączeniu się z czymkolwiek robisz to przez gniazdka. Jak dotąd wszelkie firewalle windowsowe jakich używałem pytały mnie jak aplikacja starała się w ogóle wywołać jakiekolwiek połączenie, a to na jakim porcie kompletnie nie miało znaczenia. Firewall miał w nosie czy aplikacja wywołuje port 21, 80, 8080 czy jakiś "nieznany". Zawszę pytał mnie czy utworzyć regułę dla programu (nie mówię o domyślnym windowsowym, bo nie korzystałem).
prócz rurek które podał icek to ja dodam jeszcze że na Windowsie można skorzystać z COM(na linuch odpowiednikiem tego możebyć mozillowskie XPCOM które pod windą też działa :) )
Ale o czym Ty mówisz, bo chyba Cię nie rozumiem? Co nazywasz socketem? Przy łączeniu się z czymkolwiek robisz to przez gniazdka. Jak dotąd wszelkie firewalle windowsowe jakich używałem pytały mnie jak aplikacja starała się w ogóle wywołać jakiekolwiek połączenie, a to na jakim porcie kompletnie nie miało znaczenia. Firewall miał w nosie czy aplikacja wywołuje port 21, 80, 8080 czy jakiś "nieznany". Zawszę pytał mnie czy utworzyć regułę dla programu (nie mówię o domyślnym windowsowym, bo nie korzystałem).
Już wyjasniam: To co zaobserwowaleś dotyczy łaczenia się programów np. przez IdTCPClient i IdTCPserver. Firewall na komputerze gdzie jest IdTCPserver wywali komunkat o którym pisałeś. Jeśli natomiast zechcesz połączyć dwie aplikacje które będą pobierały rozkazy z sewera przy pomocy IdFtp w postaci pliku tekstowego to wowczas firewall nie wywali zadnego komunikatu (mam tu na myśli firewall ten windosowski)
Już wyjasniam: To co zaobserwowaleś dotyczy łaczenia się programów np. przez IdTCPClient i IdTCPserver. Firewall na komputerze gdzie jest IdTCPserver wywali komunkat o którym pisałeś. Jeśli natomiast zechcesz połączyć dwie aplikacje które będą pobierały rozkazy z sewera przy pomocy IdFtp w postaci pliku tekstowego to wowczas firewall nie wywali zadnego komunikatu (mam tu na myśli firewall ten windosowski) Nazywanie tego czegos w windowsie firewallem zakrawa mi tu na grzech :lol2:
Wiec widzisz, znalazles jakis bubel tegoz 'firewalla'.
Kazdy dobry firewall wylapie najmniejsze oznaki ruchu na ktorymkolwiek z portow. Jezeli tego nie robi to jest dziurawy, a wiec zbedny. :P
Nazywanie tego czegos w windowsie firewallem zakrawa mi tu na grzech :lol2:
Wiec widzisz, znalazles jakis bubel tegoz 'firewalla'.
Kazdy dobry firewall wylapie najmniejsze oznaki ruchu na ktorymkolwiek z portow. Jezeli tego nie robi to jest dziurawy, a wiec zbedny. :P
To mam pytanie proszę podaj mi nazwe firewalla, który wyłapie ruchy także przez ftp? Mam tu namyśli wysyłanie i odbieranie. Tylko obawiam się ze cos takiego nie istnieje :P . a może jest jeszcze firewall jakiś co wyłapuje ruchy przez http :P :lol2:
Użytkownik statjacek edytował ten post 22 lipiec 2007, 11:20
OMG sorry statjacek ale naprawdę już nie mogę ścierpieć co za głupoty piszesz. Każdy firewall coś takiego wyłapie (praktycznie każdy ruch po sieci w tym te ftp ;P). Używam Kerio Personal Firewall i wykrywa i każdy normalny będzie wykrywać. Ten w windowsie to shit, dlatego zezwala.
Poza tym widać, że w ogóle nie jesteś w temacie z komunikacją między aplikacjami. Jak się nie znasz to się nie wypowiadaj. To nie pierwszy raz kiedy w moim odczuciu wypisujesz głupoty właśnie w tym dziale. Więc radzę Ci za każdym razem kiedy coś piszesz zastanów się czy Twoje rozwiązanie ma sens, bo pisać głupoty to każdy jeden potrafi.
Użytkownik PcSA edytował ten post 22 lipiec 2007, 12:21
statjacek ~ firewalle z reguly wykrywaja ruch na poziomie IP (w tym TCP i UDP), wiec co takiego wyjatkowego jest w FTP i HTTP (poza standardowymi portami TCP), ze firewall mialby nie umiec tego wylapac? (pisze umiec bo zakladam, ze jednak defaultowe reguly nie sa tak restrykcyjne - nie uzywam wiec nie wiem). A jesli chodzi o komunikacje to radze sie nauczyc uzywania rzeczy ktore zostaly stworzone do danego celu - FTP sluzy do transferowania plikow.
OMG sorry statjacek ale naprawdę już nie mogę ścierpieć co za głupoty piszesz. Każdy firewall coś takiego wyłapie (praktycznie każdy ruch po sieci w tym te ftp ;P). Używam Kerio Personal Firewall i wykrywa i każdy normalny będzie wykrywać. Ten w windowsie to shit, dlatego zezwala.
Poza tym widać, że w ogóle nie jesteś w temacie z komunikacją między aplikacjami. Jak się nie znasz to się nie wypowiadaj. To nie pierwszy raz kiedy w moim odczuciu wypisujesz głupoty właśnie w tym dziale. Więc radzę Ci za każdym razem kiedy coś piszesz zastanów się czy Twoje rozwiązanie ma sens, bo pisać głupoty to każdy jeden potrafi.
Nie urzywalem innego firewalla jak tylko windosowski. Jak bede miał okazje to to sprawdze.
Jestem w temacie jeśli chodzi o komunikowanie się miedzy aplikacjami. Może wiec powiesz mi jaką głupote napisałem w/w temacie?
Nie urzywalem innego firewalla jak tylko windosowski. Jak bede miał okazje to to sprawdze.
Jestem w temacie jeśli chodzi o komunikowanie się miedzy aplikacjami. Może wiec powiesz mi jaką głupote napisałem w/w temacie?
Windowsowski jest najwidoczniej mocno upośledzony. Doradziłeś komunikację via FTP. Co w tym złego?
Skoro programy działają na tym samym komputerze (wynika to z pytania), to po co w ogóle angażować zewnętrzne komputery? Od czego są komunikaty, etc?
Firewall (to że windowsowski jest popierniczony już ustaliliśmy) zablokuje połączenie niezależnie od gniazda. Jeżeli zakładamy że port 21 jest dla jakiegoś firewalla domyślnie 'bezpieczny' (idiotyzm, ale widać m$ o tym nie wie), to już o niebo lepiej sobie nasłuchiwać na 21 i tak się łączyć niż walić dane w sieć.
// Ja korzystałem choćby z Sygate Personal Firewall czy Ashampoo (~).
// A i żeby nie było - można komunikować się przez FTP. Tylko tak jak pisałem, nie rozwiąże to problemu firewalla. Poza tym, ja raczej do domu wolę wchodzić przez drzwi frontowe niż przez właz na dachu, mimo iż na upartego by się dało ;).
Użytkownik Ali240 edytował ten post 22 lipiec 2007, 14:12
Windowsowski jest najwidoczniej mocno upośledzony. Doradziłeś komunikację via FTP. Co w tym złego?
Skoro programy działają na tym samym komputerze (wynika to z pytania), to po co w ogóle angażować zewnętrzne komputery? Od czego są komunikaty, etc?
Firewall (to że windowsowski jest popierniczony już ustaliliśmy) zablokuje połączenie niezależnie od gniazda. Jeżeli zakładamy że port 21 jest dla jakiegoś firewalla domyślnie 'bezpieczny' (idiotyzm, ale widać m$ o tym nie wie), to już o niebo lepiej sobie nasłuchiwać na 21 i tak się łączyć niż walić dane w sieć.
// Ja korzystałem choćby z Sygate Personal Firewall czy Ashampoo (~).
Zaraz chwileczke jeśli programy działają w tym samym komputerze to istotnie masz racje. Tylko o tym nie było tu mowy, że programy działają w tym samym komputerze. No chyba że coś przeoczylem.
Ale gdyby nawet działały na różnych komputerach to ruch po ftp jest wolniejszy, bo więcej poleceń (zapytań) musisz wysłać do serwera na starcie. Poza tym z uporem maniaka próbujesz wcisnąć, że ruchu na porcie na którym jest ftp jest zawsze otwarty i jest nie monitorowany przez aplikacje typu firewall.
Ale gdyby nawet działały na różnych komputerach to ruch po ftp jest wolniejszy, bo więcej poleceń (zapytań) musisz wysłać do serwera na starcie. Poza tym z uporem maniaka próbujesz wcisnąć, że ruchu na porcie na którym jest ftp jest zawsze otwarty i jest nie monitorowany przez aplikacje typu firewall.
Zaraz chwileczke autor tematu napisał:
Witam.
Mam dwa programy. Wymieniają one między sobą informacje przez sockety.
Jednak ludzie, rzadko zezwalają na połączenie, i wtedy jeden z programów jest "upośledzony" i nie działa tak jak powinien.
Czy jest jakaś możliwość na inne przesyłanie danych?
Z tego co wiem niewielu ludzi korzysta z innego firewalla jak windosowski. Tak więc na wiekszości komputerow ftp jest zawsze otwarte.
Użytkownik statjacek edytował ten post 22 lipiec 2007, 15:58
Z tego co wiem niewielu ludzi korzysta z innego firewalla jak windosowski. Tak więc na wiekszości komputerow ftp jest zawsze otwarte.
Nie wiem, może ja inaczej wnioskuje, ale skoro autor wykluczył sockety to imo musi to działać lokalnie. Ale mniejsza o to. Co do powyższego - jeżeli stosujesz politykę że "większość ludzi korzysta z" to już tylko i wyłącznie Twój problem. Ja uważam iż jest to głupie. Takie założenia można przyjmować tworząc conajwyżej wirusa, a nie program dla użytkownika. Przez tego typu polityki cierpią ludzie używający linuksa. Choć pewnie ich nie dostrzegasz bo przecież większość ma windowsa... Nie chodzi mi o to żeby się kłócić, ale nie propaguj takiej polityki wśród innych. A co do firewalla windowsowskiego - skoro puszcza na 21 to zapewne nie sprawdza co tam przechodzi, więc dużo łatwiej jest sobie zrobić połączenie na tym porcie niż korzystać z ftp (no chyba że ta genialna reguła nie dotyczy połączeń przychodzących ;)).
co do FTP to np firewall w Kasperskim pyta się czy pozwolić na połączenie (stawiając serwer) sam testowałem używając komponentu indy.A co do windowsowskiego "firewalla" to trudno go nazwać firewallem:) Chodź ten on Visty jest lepszy od tego w XP
Nie wiem, może ja inaczej wnioskuje, ale skoro autor wykluczył sockety to imo musi to działać lokalnie. Ale mniejsza o to. Co do powyższego - jeżeli stosujesz politykę że "większość ludzi korzysta z" to już tylko i wyłącznie Twój problem. Ja uważam iż jest to głupie. Takie założenia można przyjmować tworząc conajwyżej wirusa, a nie program dla użytkownika. Przez tego typu polityki cierpią ludzie używający linuksa. Choć pewnie ich nie dostrzegasz bo przecież większość ma windowsa... Nie chodzi mi o to żeby się kłócić, ale nie propaguj takiej polityki wśród innych. A co do firewalla windowsowskiego - skoro puszcza na 21 to zapewne nie sprawdza co tam przechodzi, więc dużo łatwiej jest sobie zrobić połączenie na tym porcie niż korzystać z ftp (no chyba że ta genialna reguła nie dotyczy połączeń przychodzących ;)).
zanstalowalem wlasnie fireware z experta McAfee. On rzeczywiście pyta przy probie połączenia z ftp. Jest niewatpliwie lepszy dla mnie od tego z windows. Jest wielu roznych ludzi, ktorzy korzystaja z neta. Wiekszosc z nich ma niewielkie pojecie. Wyobrazam sobie ze jesli by Microsoft zastosowa taka polityke w swoim firewallu to ludzie by sie bali instalowania wielu programow poniewaz: aktualizuja sie one przez internet, sprawdzaja czy jest nowsza wersja, wymagaja rejestracji. Tak wiec slowo lepszy nie znaczy ze jest lepszy dla kazdego.
zanstalowalem wlasnie fireware z experta McAfee. On rzeczywiście pyta przy probie połączenia z ftp. Jest niewatpliwie lepszy dla mnie od tego z windows. Jest wielu roznych ludzi, ktorzy korzystaja z neta. Wiekszosc z nich ma niewielkie pojecie. Wyobrazam sobie ze jesli by Microsoft zastosowa taka polityke w swoim firewallu to ludzie by sie bali instalowania wielu programow poniewaz: aktualizuja sie one przez internet, sprawdzaja czy jest nowsza wersja, wymagaja rejestracji. Tak wiec slowo lepszy nie znaczy ze jest lepszy dla kazdego.
Robi się małe ot, ale jakieś tam powiązanie z tematem jeszcze jest ;).
Jednym odpowiada innym nie - kwestia gustu. Ale wg mnie jeżeli już wprowadza się firewall systemowy, to powinien umożliwiać on kompletną ochronę. Przecież dodanie jednego okienka przy instalacji to nie problem - windows powinien mieć opcję wyboru typu ochrony komputera - standardowa umożliwiająca dostęp do standardowych usług jak http czy ftp oraz zaawansowana dająca większą kontrolę. Zauważ, że to że domyślnie dopuszcza takie połączenia jest poważną wadą i jest to wada dla każdego, pomimo iż nie zawsze się to dostrzega - umożliwia na niezauważalne wydostanie się poufnych danych, a konkretniej - pozwala wirusom na pozostanie niezauważonym. Gdy firewall pyta Cię o każdy program, fakt jest to na początku upierdliwe, ale da się znieść, to taka sytuacja zostaje wykluczona - zauważysz że jakiś nieznany program nagle łączy się z netem nie wiadomo z jakiej paki. Także sposób działania firewall'a windowsowego może wydawać się lepszym dla niektórych, ale z całą pewnością nie możemy go uznać lepszym, niezależnie na jaką grupę docelową spojrzymy.
A tak swoją drogą to w viscie zrobili tyle upierdliwych potwierdzeń na wzór linuksa (a może mac'a? :)), no i wyszedł niewypał, że jakby dodali jeszcze pytania dla firewall'a to pewnie większość programów by user zatwierdził automatycznie - już by miał dość potwierdzania wszystkiego (prawie każda instalacja!) i by ciągle klikał [tak] bez czytania ;).