reklama - zainteresowany?

C i C++. Bezpieczne programowanie. Receptury - Helion

C i C++. Bezpieczne programowanie. Receptury
Autor: John Viega, Matt Messier
Tytuł oryginału: Secure Programming Cookbook for C and C++
Tłumaczenie: Bartłomiej Garbacz (rozdz. 8 - 13), Krzysztof Mieśniak (rozdz. 6), Mikołaj Szczepaniak (przedmowa, rozdz. 1 - 5, 7)
ISBN: 83-7361-684-5
stron: 784, Format: B5, okładka: miękka
Data wydania: 2005-01-12
Księgarnia: Helion

Cena książki: 79,89 zł

Dodaj do koszyka C i C++. Bezpieczne programowanie. Receptury

Tagi: C - Programowanie | C++ - Programowanie

  • Eliminowanie najczęściej popeÅ‚nianych bÅ‚Ä™dów w kodzie
  • Tworzenie bezpiecznych kanałów komunikacji w aplikacjach klient-serwer
  • Stosowanie technik kryptografii i kluczy publicznych

Niemal wszystkie współczesne systemy i sieci komputerowe są atakowane przez hakerów. Techniki stosowane przez nich są przeróżne -- od przechwytywania haseł i podszywania się pod komputery lub usługi aż do ataków typu DoS. Niemal każdy problem związany z bezpieczeństwem sieci komputerowej jest wynikiem nieprawidłowego działania wykorzystywanego w niej oprogramowania. Pisanie bezpiecznych aplikacji jest trudne i często wymaga wiedzy, której wielu programistów po prostu nie posiada.

"C i C++. Bezpieczne programowanie. Receptury" to kompletne źródło wiedzy dla programistów, którzy chcą udoskonalić swoje umiejętności z zakresu tworzenia bezpiecznego kodu. Przedstawia gotowe rozwiązania zagadnień programistycznych, takich jak bezpieczna inicjalizacja aplikacji, kryptografia, uwierzytelnianie użytkowników, wymiana kluczy, zapobieganie penetracji i wielu innych. Każde zagadnienie jest przedstawione w postaci kodu źródłowego w języku C i C++ oraz obszernego opisu, co ułatwia dostosowanie go do własnych potrzeb.

  • Bezpieczne uruchamianie aplikacji
  • Kontrola dostÄ™pu do plików i aplikacji
  • Sprawdzanie poprawnoÅ›ci danych wejÅ›ciowych oraz ochrona przed atakami typu XSS i SQL Injection
  • Generowanie i obsÅ‚uga kluczy symetrycznych
  • Wykorzystywanie szyfrowania symetrycznego
  • Stosowanie klucza publicznego
  • Bezpieczna komunikacja sieciowa
  • Liczby losowe
  • Zapobieganie penetracjom oraz obsÅ‚uga bÅ‚Ä™dów

Książka zawiera wszystkie informacje niezbędne do zabezpieczenia aplikacji przed hakerami.

Dodaj do koszyka C i C++. Bezpieczne programowanie. Receptury

 

Osoby które kupowały "C i C++. Bezpieczne programowanie. Receptury", wybierały także:

  • JÄ™zyk C. Kurs video. Praktyczne wprowadzenie do programowania
  • Linux. Programowanie systemowe
  • JÄ™zyk C. Solidna wiedza w praktyce. Wydanie VIII
  • Tablice informatyczne. C
  • Programowanie współbieżne. Systemy czasu rzeczywistego

Dodaj do koszyka C i C++. Bezpieczne programowanie. Receptury

Spis treści

C i C++. Bezpieczne programowanie. Receptury -- spis treści

Przedmowa (11)

Wstęp (15)

1. Bezpieczna inicjalizacja (25)

  • 1.1. Zabezpieczanie Å›rodowiska pracy programu (25)
  • 1.2. Ograniczanie uprawnieÅ„ w systemach Windows (32)
  • 1.3. Rezygnacja z uprawnieÅ„ w programach setuid (40)
  • 1.4. Ograniczanie ryzyka zwiÄ…zanego z separacjÄ… uprawnieÅ„ (45)
  • 1.5. Bezpieczne zarzÄ…dzanie deskryptorami plików (48)
  • 1.6. Bezpieczne tworzenie procesu potomnego (50)
  • 1.7. Bezpieczne uruchamianie programów zewnÄ™trznych w systemach Unix (53)
  • 1.8. Bezpieczne uruchamianie zewnÄ™trznych programów w systemach Windows (58)
  • 1.9. WyÅ‚Ä…czanie zrzutów pamiÄ™ci w przypadku wystÄ…pienia bÅ‚Ä™du (60)

2. Kontrola dostępu (63)

  • 2.1. Model kontroli dostÄ™pu w systemach Unix (63)
  • 2.2. Model kontroli dostÄ™pu w systemach Windows (66)
  • 2.3. OkreÅ›lanie, czy dany użytkownik ma dostÄ™p do danego pliku w systemie Unix (68)
  • 2.4. OkreÅ›lanie, czy dany katalog jest bezpieczny (70)
  • 2.5. Bezpieczne usuwanie plików (73)
  • 2.6. Bezpieczne uzyskiwanie dostÄ™pu do informacji o pliku (79)
  • 2.7. Ograniczone prawa dostÄ™pu do nowych plików w systemach Unix (80)
  • 2.8. Blokowanie plików (83)
  • 2.9. Synchronizacja dostÄ™pu procesów do zasobów w systemach Unix (85)
  • 2.10. Synchronizacja dostÄ™pu procesów do zasobów w systemach Windows (89)
  • 2.11. Tworzenie plików tymczasowych (91)
  • 2.12. Ograniczanie dostÄ™pu do systemu plików w systemach Unix (94)
  • 2.13. Ograniczanie dostÄ™pu do systemu plików i sieci w systemie FreeBSD (95)

3. Sprawdzanie poprawności danych wejściowych (97)

  • 3.1. Podstawowe techniki sprawdzania poprawnoÅ›ci danych (98)
  • 3.2. Zapobieganie atakom z wykorzystaniem funkcji formatujÄ…cych (102)
  • 3.3. Zapobieganie przepeÅ‚nieniom bufora (105)
  • 3.4. Stosowanie biblioteki SafeStr (113)
  • 3.5. Zapobieganie koercji liczb caÅ‚kowitych i problemowi przekroczenia zakresu (116)
  • 3.6. Bezpieczne stosowanie zmiennych Å›rodowiskowych (120)
  • 3.7. Sprawdzanie poprawnoÅ›ci nazw plików i Å›cieżek (125)
  • 3.8. ObsÅ‚uga kodowania URL (127)
  • 3.9. Sprawdzanie poprawnoÅ›ci adresów poczty elektronicznej (129)
  • 3.10. Ochrona przed atakami typu cross-site scripting (XSS) (131)
  • 3.11. Ochrona przed atakami typu SQL injection (135)
  • 3.12. Wykrywanie nieprawidÅ‚owych znaków UTF-8 (138)
  • 3.13. Zapobieganie przepeÅ‚nieniom deskryptorów plików podczas stosowania funkcji select() (140)

4. Podstawy kryptografii symetrycznej (145)

  • 4.1. Reprezentacje kluczy wykorzystywanych w algorytmach kryptograficznych (146)
  • 4.2. Generowanie losowych kluczy symetrycznych (148)
  • 4.3. Szesnastkowe reprezentacje kluczy binarnych (lub innych nieprzetworzonych danych) (149)
  • 4.4. PrzeksztaÅ‚canie szesnastkowych kluczy ASCII (lub innych szesnastkowych danych ASCII) na postać binarnÄ… (151)
  • 4.5. Kodowanie Base64 (152)
  • 4.6. Dekodowanie Å‚aÅ„cucha zakodowanego zgodnie ze standardem Base64 (154)
  • 4.7. Reprezentowanie kluczy (lub dowolnych innych danych binarnych) w postaci tekstu zapisanego w jÄ™zyku angielskim (157)
  • 4.8. PrzeksztaÅ‚canie kluczy tekstowych na klucze binarne (159)
  • 4.9. Stosowanie argumentów salt, jednorazowych identyfikatorów i wektorów inicjalizacji (161)
  • 4.10. Generowanie kluczy symetrycznych na bazie haseÅ‚ (165)
  • 4.11. Algorytmiczne generowanie kluczy symetrycznych na bazie jednego tajnego klucza głównego (171)
  • 4.12. Szyfrowanie okrojonego zbioru znaków (175)
  • 4.13. Bezpieczne zarzÄ…dzanie materiaÅ‚em klucza (178)
  • 4.14. Badanie czasu dziaÅ‚ania algorytmów kryptograficznych (179)

5. Szyfrowanie symetryczne (185)

  • 5.1. Podejmowanie decyzji w kwestii stosowania wielu algorytmów szyfrujÄ…cych (185)
  • 5.2. Wybór najlepszego algorytmu szyfrujÄ…cego (186)
  • 5.3. Wybór wÅ‚aÅ›ciwej dÅ‚ugoÅ›ci klucza (190)
  • 5.4. Wybór trybu pracy szyfru blokowego (193)
  • 5.5. Stosowanie podstawowych operacji szyfru blokowego (203)
  • 5.6. Stosowanie ogólnej implementacji trybu CBC (207)
  • 5.7. Stosowanie ogólnej implementacji trybu CFB (217)
  • 5.8. Stosowanie ogólnej implementacji trybu OFB (224)
  • 5.9. Stosowanie ogólnej implementacji trybu CTR (228)
  • 5.10. Stosowanie trybu szyfrowania CWC (233)
  • 5.11. RÄ™czne dodawanie i sprawdzanie dopeÅ‚niania szyfru (237)
  • 5.12. Wyznaczanie z góry strumienia klucza w trybach OFB, CTR, CCM i CWC (oraz w szyfrach strumieniowych) (239)
  • 5.13. Zrównoleglanie szyfrowania i deszyfrowania w trybach, które na takie dziaÅ‚ania zezwalajÄ… (bez wprowadzania ewentualnych niezgodnoÅ›ci) (240)
  • 5.14. Zrównoleglanie szyfrowania i deszyfrowania w dowolnych trybach (a wiÄ™c z możliwoÅ›ciÄ… wprowadzania ewentualnych niezgodnoÅ›ci) (244)
  • 5.15. Szyfrowanie zawartoÅ›ci plików lub caÅ‚ych dysków (245)
  • 5.16. Stosowanie wysokopoziomowych, odpornych na bÅ‚Ä™dy interfejsów API dla operacji szyfrowania i deszyfrowania (249)
  • 5.17. Konfiguracja szyfru blokowego (dla trybów szyfrowania CBC, CFB, OFB oraz ECB) w pakiecie OpenSSL (254)
  • 5.18. Stosowanie szyfrów ze zmiennÄ… dÅ‚ugoÅ›ciÄ… klucza w pakiecie OpenSSL (259)
  • 5.19. WyÅ‚Ä…czanie mechanizmu dopeÅ‚niania w szyfrach pakietu OpenSSL pracujÄ…cych w trybie CBC (260)
  • 5.20. Dodatkowa konfiguracja szyfrów w pakiecie OpenSSL (261)
  • 5.21. Sprawdzanie wÅ‚aÅ›ciwoÅ›ci konfiguracji szyfru w pakiecie OpenSSL (262)
  • 5.22. Wykonywanie niskopoziomowego szyfrowania i deszyfrowania w pakiecie OpenSSL (264)
  • 5.23. Konfiguracja i stosowanie szyfru RC4 (267)
  • 5.24. Stosowanie szyfrów z kluczem jednorazowym (270)
  • 5.25. Stosowanie szyfrowania symetrycznego z wykorzystaniem CryptoAPI firmy Microsoft (271)
  • 5.26. Tworzenie obiektu klucza interfejsu CryptoAPI na bazie dowolnych danych klucza (277)
  • 5.27. Uzyskiwanie surowych danych klucza z obiektu klucza interfejsu CryptoAPI (280)

6. Funkcje skrótu i uwierzytelnianie wiadomości (283)

  • 6.1. Zrozumienie podstaw funkcji skrótu i kodu uwierzytelniajÄ…cego wiadomość MAC (283)
  • 6.2. Decydowanie, czy obsÅ‚ugiwać wiele skrótów wiadomoÅ›ci lub kodów MAC (287)
  • 6.3. Wybór kryptograficznego algorytmu skrótu (288)
  • 6.4. Wybór kodu uwierzytelnienia wiadomoÅ›ci (292)
  • 6.5. Przyrostowe tworzenie skrótów danych (296)
  • 6.6. Tworzenie skrótu z pojedynczego Å‚aÅ„cucha znaków (300)
  • 6.7. Używanie skrótu kryptograficznego (302)
  • 6.8. Wykorzystanie identyfikatora jednorazowego do obrony przed atakami wykorzystujÄ…cymi paradoks dnia urodzin (303)
  • 6.9. Sprawdzanie spójnoÅ›ci wiadomoÅ›ci (307)
  • 6.10. Używanie HMAC (309)
  • 6.11. Używanie OMAC (prostego kodu MAC opartego na szyfrze blokowym) (312)
  • 6.12. Używanie HMAC lub OMAC z identyfikatorem jednorazowym (317)
  • 6.13. Używanie kodu MAC, który jest wystarczajÄ…co szybki w realizacji programowej i sprzÄ™towej (318)
  • 6.14. Używanie kodu MAC zoptymalizowanego do szybszego dziaÅ‚ania w realizacji programowej (319)
  • 6.15. Konstruowanie funkcji skrótu z szyfru blokowego (322)
  • 6.16. Używanie szyfru blokowego do budowy mocnej funkcji skrótu (325)
  • 6.17. Używanie mniejszych znaczników MAC (329)
  • 6.18. Szyfrowanie z zachowaniem spójnoÅ›ci wiadomoÅ›ci (329)
  • 6.19. Tworzenie wÅ‚asnego kodu MAC (331)
  • 6.20. Szyfrowanie za pomocÄ… funkcji skrótu (332)
  • 6.21. Bezpieczne uwierzytelnianie kodu MAC (obrona przed atakami zwiÄ…zanymi z przechwytywaniem i powtarzaniem odpowiedzi) (334)
  • 6.22. Przetwarzanie równolegÅ‚e kodu MAC (335)

7. Kryptografia z kluczem publicznym (337)

  • 7.1. OkreÅ›lanie sytuacji, w których należy stosować techniki kryptografii z kluczem publicznym (339)
  • 7.2. Wybór algorytmu z kluczem publicznym (342)
  • 7.3. Wybór rozmiarów kluczy publicznych (343)
  • 7.4. Przetwarzanie wielkich liczb (346)
  • 7.5. Generowanie liczby pierwszej i sprawdzanie czy dana liczba jest liczbÄ… pierwszÄ… (355)
  • 7.6. Generowanie pary kluczy szyfru RSA (358)
  • 7.7. Oddzielanie kluczy publicznych i prywatnych w pakiecie OpenSSL (361)
  • 7.8. Konwertowanie Å‚aÅ„cuchów binarnych na postać liczb caÅ‚kowitych na potrzeby szyfru RSA (362)
  • 7.9. PrzeksztaÅ‚canie liczb caÅ‚kowitych do postaci Å‚aÅ„cuchów binarnych na potrzeby szyfru RSA (363)
  • 7.10. Podstawowa operacja szyfrowania za pomocÄ… klucza publicznego algorytmu RSA (364)
  • 7.11. Podstawowa operacja deszyfrowania za pomocÄ… klucza prywatnego algorytmu RSA (368)
  • 7.12. Podpisywanie danych za pomocÄ… klucza prywatnego szyfru RSA (370)
  • 7.13. Weryfikacja cyfrowo podpisanych danych za pomocÄ… klucza publicznego algorytmu RSA (374)
  • 7.14. Bezpieczne podpisywanie i szyfrowanie danych za pomocÄ… algorytmu RSA (376)
  • 7.15. Wykorzystywanie algorytmu DSA (381)
  • 7.16. Reprezentowanie kluczy publicznych i certyfikatów w postaci Å‚aÅ„cuchów binarnych (zgodnie z reguÅ‚ami kodowania DER) (386)
  • 7.17. Reprezentowanie kluczy i certyfikatów w postaci tekstu (zgodnie z reguÅ‚ami kodowania PEM) (390)

8. Uwierzytelnianie i wymiana kluczy (397)

  • 8.1. Wybór metody uwierzytelniania (397)
  • 8.2. Uzyskiwanie informacji o użytkownikach i grupach w systemach uniksowych (407)
  • 8.3. Uzyskiwanie informacji o użytkownikach i grupach w systemach Windows (410)
  • 8.4. Ograniczanie dostÄ™pu na podstawie nazwy maszyny lub adresu IP (413)
  • 8.5. Generowanie losowych haseÅ‚ i wyrażeÅ„ hasÅ‚owych (420)
  • 8.6. Sprawdzanie odpornoÅ›ci haseÅ‚ na ataki (424)
  • 8.7. Monitowanie o hasÅ‚o (425)
  • 8.8. Kontrola nad nieudanymi próbami uwierzytelnienia (430)
  • 8.9. Uwierzytelnianie oparte na hasÅ‚ach z użyciem funkcji crypt() (432)
  • 8.10. Uwierzytelnianie oparte na hasÅ‚ach z użyciem funkcji MD5-MCF (434)
  • 8.11. Uwierzytelnianie oparte na hasÅ‚ach z użyciem funkcji PBKDF2 (439)
  • 8.12. Uwierzytelnianie przy użyciu modułów PAM (442)
  • 8.13. Uwierzytelnianie za pomocÄ… systemu Kerberos (445)
  • 8.14. Uwierzytelnianie z wykorzystaniem mechanizmu HTTP Cookies (449)
  • 8.15. Uwierzytelnianie oraz wymiana kluczy oparte na hasÅ‚ach (452)
  • 8.16. Przeprowadzanie uwierzytelnionej wymiany klucza przy użyciu algorytmu RSA (459)
  • 8.17. Użycie podstawowego protokoÅ‚u uzgadniania klucza metodÄ… Diffiego-Hellmana (461)
  • 8.18. Wspólne użycie metody Diffiego-Hellmana i algorytmu DSA (466)
  • 8.19. Minimalizacja okresu podatnoÅ›ci na ataki w przypadku uwierzytelniania bez użycia infrastruktury PKI (467)
  • 8.20. Zapewnianie przyszÅ‚ego bezpieczeÅ„stwa w systemie symetrycznym (473)
  • 8.21. Zapewnianie przyszÅ‚ego bezpieczeÅ„stwa w systemie z kluczem publicznym (474)
  • 8.22. Potwierdzanie żądaÅ„ za pomocÄ… wiadomoÅ›ci poczty elektronicznej (476)

9. Komunikacja sieciowa (483)

  • 9.1. Tworzenie klienta SSL (484)
  • 9.2. Tworzenie serwera SSL (486)
  • 9.3. Używanie mechanizmu buforowania sesji w celu zwiÄ™kszenia wydajnoÅ›ci serwerów SSL (489)
  • 9.4. Zabezpieczanie komunikacji sieciowej na platformie Windows )przy użyciu interfejsu WinInet API (492)
  • 9.5. Aktywowanie protokoÅ‚u SSL bez modyfikowania kodu źródÅ‚owego (496)
  • 9.6. Używanie szyfrowania standardu Kerberos (498)
  • 9.7. Komunikacja miÄ™dzyprocesowa przy użyciu gniazd (503)
  • 9.8. Uwierzytelnianie przy użyciu uniksowych gniazd domenowych (509)
  • 9.9. ZarzÄ…dzanie identyfikatorami sesji (512)
  • 9.10. Zabezpieczanie poÅ‚Ä…czeÅ„ bazodanowych (513)
  • 9.11. Używanie wirtualnych sieci prywatnych w celu zabezpieczenia poÅ‚Ä…czeÅ„ sieciowych (516)
  • 9.12. Tworzenie uwierzytelnionych bezpiecznych kanałów bez użycia SSL (517)

10. Infrastruktura klucza publicznego (527)

  • 10.1. Podstawy infrastruktury klucza publicznego (527)
  • 10.2. Otrzymywanie certyfikatu (538)
  • 10.3. Używanie certyfikatów głównych (543)
  • 10.4. Podstawy metodologii weryfikacji certyfikatów X.509 (546)
  • 10.5. Przeprowadzanie weryfikacji certyfikatów X.509 przy użyciu OpenSSL (548)
  • 10.6. Przeprowadzanie weryfikacji certyfikatów X.509 przy użyciu interfejsu CryptoAPI (553)
  • 10.7. Weryfikowanie certyfikatu pochodzÄ…cego od partnera komunikacji SSL (558)
  • 10.8. Dodawanie mechanizmu sprawdzania nazwy hosta do procesu weryfikacji certyfikatu (562)
  • 10.9. Używanie list akceptacji w celu weryfikowania certyfikatów (566)
  • 10.10. Pobieranie list unieważnionych certyfikatów przy użyciu OpenSSL (569)
  • 10.11. Pobieranie list unieważnionych certyfikatów przy użyciu CryptoAPI (576)
  • 10.12. Sprawdzanie stanu unieważnienia poprzez protokół OCSP przy wykorzystaniu OpenSSL (582)

11. Liczby losowe (587)

  • 11.1. OkreÅ›lanie charakteru liczb losowych, których należy użyć (587)
  • 11.2. Używanie ogólnego interfejsu API dla obsÅ‚ugi losowoÅ›ci i entropii (592)
  • 11.3. Używanie standardowej infrastruktury losowoÅ›ci w systemach uniksowych (594)
  • 11.4. Używanie standardowej infrastruktury losowoÅ›ci w systemach Windows (598)
  • 11.5. Używanie generatora poziomu aplikacji (600)
  • 11.6. Ponowna inicjalizacja ziarna generatora liczb pseudolosowych (609)
  • 11.7. Używanie rozwiÄ…zania kompatybilnego z demonem zbierania entropii (612)
  • 11.8. Zbieranie entropii lub wartoÅ›ci pseudolosowych przy użyciu pakietu EGADS (616)
  • 11.9. Używanie interfejsu API obsÅ‚ugi liczb losowych biblioteki OpenSSL (620)
  • 11.10. Otrzymywanie losowych wartoÅ›ci caÅ‚kowitych (622)
  • 11.11. Otrzymywanie losowych wartoÅ›ci caÅ‚kowitych z zadanego przedziaÅ‚u (623)
  • 11.12. Otrzymywanie losowych wartoÅ›ci zmiennopozycyjnych o rozkÅ‚adzie jednorodnym (625)
  • 11.13. Otrzymywanie wartoÅ›ci zmiennopozycyjnych o rozkÅ‚adzie niejednorodnym (626)
  • 11.14. Otrzymywanie losowych drukowalnych ciÄ…gów znaków ASCII (627)
  • 11.15. Uczciwe tasowanie (628)
  • 11.16. Kompresowanie danych z entropiÄ… do postaci ziarna o ustalonym rozmiarze (629)
  • 11.17. Zbieranie entropii w momencie uruchamiania systemu (630)
  • 11.18. Testowanie statystyczne liczb losowych (632)
  • 11.19. Szacowanie i zarzÄ…dzanie entropiÄ… (637)
  • 11.20. Zbieranie entropii na podstawie interakcji z klawiaturÄ… (645)
  • 11.21. Zbieranie entropii na podstawie zdarzeÅ„ zwiÄ…zanych z obsÅ‚ugÄ… myszy w systemie Windows (653)
  • 11.22. Zbieranie entropii na podstawie pomiarów czasowych wÄ…tków (657)
  • 11.23. Zbieranie entropii na podstawie stanu systemu (659)

12. Zapobieganie ingerencji (661)

  • 12.1. Podstawowe kwestie dotyczÄ…ce problemu ochrony oprogramowania (662)
  • 12.2. Wykrywanie modyfikacji (667)
  • 12.3. Zaciemnianie kodu (672)
  • 12.4. Przeprowadzanie zaciemniania na poziomie bitów i bajtów (677)
  • 12.5. Przeprowadzanie przeksztaÅ‚ceÅ„ na zmiennych z użyciem wartoÅ›ci staÅ‚ych (679)
  • 12.6. Scalanie zmiennych skalarnych (680)
  • 12.7. Rozdzielanie zmiennych (681)
  • 12.8. Ukrywanie wartoÅ›ci logicznych (682)
  • 12.9. Używanie wskaźników do funkcji (683)
  • 12.10. Zmiana struktury tablic (684)
  • 12.11. Ukrywanie ciÄ…gów znaków (689)
  • 12.12. Wykrywanie programów uruchomieniowych (691)
  • 12.13. Wykrywanie programów uruchomieniowych w systemie Unix (693)
  • 12.14. Wykrywanie programów uruchomieniowych w systemie Windows (695)
  • 12.15. Wykrywanie programu SoftICE (696)
  • 12.16. PrzeciwdziaÅ‚anie deasemblacji (698)
  • 12.17. Używanie kodu samomodyfikujÄ…cego (703)

13. Inne zagadnienia (709)

  • 13.1. ObsÅ‚uga bÅ‚Ä™dów (709)
  • 13.2. Bezpieczne usuwanie danych z pamiÄ™ci (713)
  • 13.3. Zapobieganie stronicowaniu pamiÄ™ci na dysku (716)
  • 13.4. Poprawne używanie argumentów zmiennych (717)
  • 13.5. Poprawna obsÅ‚uga sygnałów (720)
  • 13.6. Ochrona przed atakami rozbicia w systemie Windows (724)
  • 13.7. Ochrona przed uruchomieniem zbyt wielu wÄ…tków (726)
  • 13.8. Ochrona przed tworzeniem zbyt wielu gniazd sieciowych (731)
  • 13.9. Ochrona przed atakami wyczerpania zasobów w systemie Unix (734)
  • 13.10. Ochrona przed atakami wyczerpania zasobów w systemie Windows (737)
  • 13.11. Korzystanie ze sprawdzonych praktyk dotyczÄ…cych rejestrowania nadzorczego (740)

Skorowidz (745)

Dodaj do koszyka C i C++. Bezpieczne programowanie. Receptury

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2024 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.