Units
Translation components API.
See the Weblate's Web API documentation for detailed description of the API.
GET /api/translations/documentation/booksdevelopers-handbooksecure_index/ru/units/?format=api
{ "count": 78, "next": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/units/?format=api&page=2", "previous": null, "results": [ { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "Secure Programming in FreeBSD" ], "previous_source": "", "target": [ "Безопасное программирование в FreeBSD" ], "id_hash": -5355017718334906789, "content_hash": -5355017718334906789, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:1", "context": "", "note": "type: YAML Front Matter: description", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 1, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 4, "source_unit": "https://translate-dev.freebsd.org/api/units/1176252/?format=api", "priority": 100, "id": 1811878, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=35af27c1dcb99e5b", "url": "https://translate-dev.freebsd.org/api/units/1811878/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.076569Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "Chapter 3. Secure Programming" ], "previous_source": "", "target": [ "Глава 3. Безопасное программирование" ], "id_hash": 6081931721962702445, "content_hash": 6081931721962702445, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:1", "context": "", "note": "type: YAML Front Matter: title", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 2, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 4, "source_unit": "https://translate-dev.freebsd.org/api/units/1077798/?format=api", "priority": 100, "id": 1811879, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=d4675cad7bc4466d", "url": "https://translate-dev.freebsd.org/api/units/1811879/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.077299Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "Secure Programming" ], "previous_source": "", "target": [ "Безопасное программирование" ], "id_hash": 8930167014867953977, "content_hash": 8930167014867953977, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:16", "context": "", "note": "type: Title =", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 3, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 2, "source_unit": "https://translate-dev.freebsd.org/api/units/1077800/?format=api", "priority": 100, "id": 1811880, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=fbee5396021d6939", "url": "https://translate-dev.freebsd.org/api/units/1811880/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.077907Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "Synopsis" ], "previous_source": "", "target": [ "Обзор" ], "id_hash": -6651481047257516920, "content_hash": -6651481047257516920, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:54", "context": "", "note": "type: Title ==", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 4, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 1, "source_unit": "https://translate-dev.freebsd.org/api/units/1077802/?format=api", "priority": 100, "id": 1811881, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=23b1313a83f8f488", "url": "https://translate-dev.freebsd.org/api/units/1811881/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.078455Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "This chapter describes some of the security issues that have plagued UNIX(R) programmers for decades and some of the new tools available to help programmers avoid writing exploitable code." ], "previous_source": "", "target": [ "В этой главе описываются некоторые проблемы безопасности, которые преследуют программистов UNIX(R) на протяжении десятилетий, а также новые инструменты, помогающие избежать написания уязвимого кода." ], "id_hash": -7307355481975192136, "content_hash": -7307355481975192136, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:57", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 5, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 29, "source_unit": "https://translate-dev.freebsd.org/api/units/1077804/?format=api", "priority": 100, "id": 1811882, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=1a970ee7b95d85b8", "url": "https://translate-dev.freebsd.org/api/units/1811882/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.079015Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "Secure Design Methodology" ], "previous_source": "", "target": [ "Методология безопасного проектирования" ], "id_hash": 2811527937606117444, "content_hash": 2811527937606117444, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:59", "context": "", "note": "type: Title ==", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 6, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 3, "source_unit": "https://translate-dev.freebsd.org/api/units/1077806/?format=api", "priority": 100, "id": 1811883, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=a7048dc35d196844", "url": "https://translate-dev.freebsd.org/api/units/1811883/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.079598Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "Writing secure applications takes a very scrutinous and pessimistic outlook on life. Applications should be run with the principle of \"least privilege\" so that no process is ever running with more than the bare minimum access that it needs to accomplish its function. Previously tested code should be reused whenever possible to avoid common mistakes that others may have already fixed." ], "previous_source": "", "target": [ "Написание безопасных приложений требует очень внимательного и пессимистичного взгляда на жизнь. Приложения должны работать по принципу \"наименьших привилегий\", чтобы ни один процесс не выполнялся с доступом, превышающим необходимый минимум для выполнения его функций. По возможности следует повторно использовать уже проверенный код, чтобы избежать распространённых ошибок, которые, возможно, уже исправили другие." ], "id_hash": 4177033790952136256, "content_hash": 4177033790952136256, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:64", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 7, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 61, "source_unit": "https://translate-dev.freebsd.org/api/units/1194744/?format=api", "priority": 100, "id": 1811884, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=b9f7ce1a1c815e40", "url": "https://translate-dev.freebsd.org/api/units/1811884/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.080139Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "One of the pitfalls of the UNIX(R) environment is how easy it is to make assumptions about the sanity of the environment. Applications should never trust user input (in all its forms), system resources, inter-process communication, or the timing of events. UNIX(R) processes do not execute synchronously so logical operations are rarely atomic." ], "previous_source": "", "target": [ "Одной из ловушек среды UNIX(R) является то, насколько легко делать предположения о разумности окружения. Приложения никогда не должны доверять пользовательскому вводу (во всех его формах), системным ресурсам, межпроцессному взаимодействию или времени событий. Процессы UNIX(R) выполняются не синхронно, поэтому логические операции редко бывают атомарными." ], "id_hash": 434669108076777902, "content_hash": 434669108076777902, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:68", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 8, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 53, "source_unit": "https://translate-dev.freebsd.org/api/units/1194746/?format=api", "priority": 100, "id": 1811885, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=8608414035c091ae", "url": "https://translate-dev.freebsd.org/api/units/1811885/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.080765Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "Buffer Overflows" ], "previous_source": "", "target": [ "Переполнение буфера" ], "id_hash": 923331110801876622, "content_hash": 923331110801876622, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:70", "context": "", "note": "type: Title ==", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 9, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 2, "source_unit": "https://translate-dev.freebsd.org/api/units/1077812/?format=api", "priority": 100, "id": 1811886, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=8cd054c0d569a68e", "url": "https://translate-dev.freebsd.org/api/units/1811886/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.081356Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "Although stack-based attacks are by far the most common, it would also be possible to overrun the stack with a heap-based (malloc/free) attack." ], "previous_source": "", "target": [ "Хотя атаки на стек являются наиболее распространёнными, также возможно переполнение стека с помощью атаки на кучу (malloc/free)." ], "id_hash": -3259885602480845986, "content_hash": -3259885602480845986, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:88", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 12, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 23, "source_unit": "https://translate-dev.freebsd.org/api/units/1077818/?format=api", "priority": 100, "id": 1811889, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=52c28f50efb80b5e", "url": "https://translate-dev.freebsd.org/api/units/1811889/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.083234Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "The C programming language does not perform automatic bounds checking on arrays or pointers as many other languages do. In addition, the standard C library is filled with a handful of very dangerous functions." ], "previous_source": "", "target": [ "Язык программирования C не выполняет автоматическую проверку границ массивов или указателей, как это делают многие другие языки. Кроме того, стандартная библиотека C содержит множество очень опасных функций." ], "id_hash": 5104610697353124957, "content_hash": 5104610697353124957, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:91", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 13, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 34, "source_unit": "https://translate-dev.freebsd.org/api/units/1194752/?format=api", "priority": 100, "id": 1811890, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=c6d7386244645c5d", "url": "https://translate-dev.freebsd.org/api/units/1811890/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.083797Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "`strcpy`(char *dest, const char *src)" ], "previous_source": "", "target": [ "`strcpy`(char *dest, const char *src)" ], "id_hash": 3557288104470146352, "content_hash": 3557288104470146352, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:97", "context": "", "note": "type: Table", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 14, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 5, "source_unit": "https://translate-dev.freebsd.org/api/units/1361856/?format=api", "priority": 100, "id": 1811891, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=b15e06af06aa6d30", "url": "https://translate-dev.freebsd.org/api/units/1811891/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.084390Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "May overflow the dest buffer" ], "previous_source": "", "target": [ "Может переполнить буфер назначения" ], "id_hash": -4581953972811455534, "content_hash": -4581953972811455534, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:101, documentation/content/en/books/developers-handbook/secure/_index.adoc:106", "context": "", "note": "type: Table", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 15, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 5, "source_unit": "https://translate-dev.freebsd.org/api/units/1361858/?format=api", "priority": 100, "id": 1811892, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=4069a123516223d2", "url": "https://translate-dev.freebsd.org/api/units/1811892/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.084935Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "`strcat`(char *dest, const char *src)" ], "previous_source": "", "target": [ "`strcat`(char *dest, const char *src)" ], "id_hash": 313062613128409490, "content_hash": 313062613128409490, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:102", "context": "", "note": "type: Table", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 16, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 5, "source_unit": "https://translate-dev.freebsd.org/api/units/1361860/?format=api", "priority": 100, "id": 1811893, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=845838c9b7f97192", "url": "https://translate-dev.freebsd.org/api/units/1811893/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.085478Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "`getwd`(char *buf)" ], "previous_source": "", "target": [ "`getwd`(char *buf)" ], "id_hash": -2221787925720312254, "content_hash": -2221787925720312254, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:107", "context": "", "note": "type: Table", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 17, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 2, "source_unit": "https://translate-dev.freebsd.org/api/units/1361862/?format=api", "priority": 100, "id": 1811894, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=612a9fa731305642", "url": "https://translate-dev.freebsd.org/api/units/1811894/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.086025Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "May overflow the buf buffer" ], "previous_source": "", "target": [ "Может переполнить буфер buf" ], "id_hash": 7475161432038503539, "content_hash": 7475161432038503539, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:111", "context": "", "note": "type: Table", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 18, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 5, "source_unit": "https://translate-dev.freebsd.org/api/units/1361864/?format=api", "priority": 100, "id": 1811895, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=e7bd1bb7a35af473", "url": "https://translate-dev.freebsd.org/api/units/1811895/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.086551Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "`gets`(char *s)" ], "previous_source": "", "target": [ "`gets`(char *s)" ], "id_hash": 1644821481321653697, "content_hash": 1644821481321653697, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:112", "context": "", "note": "type: Table", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 19, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 2, "source_unit": "https://translate-dev.freebsd.org/api/units/1361866/?format=api", "priority": 100, "id": 1811896, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=96d3946c311be5c1", "url": "https://translate-dev.freebsd.org/api/units/1811896/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.087076Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "May overflow the s buffer" ], "previous_source": "", "target": [ "Может переполнить буфер s" ], "id_hash": 2017426237344978012, "content_hash": 2017426237344978012, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:116", "context": "", "note": "type: Table", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 20, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 5, "source_unit": "https://translate-dev.freebsd.org/api/units/1361868/?format=api", "priority": 100, "id": 1811897, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=9bff56795d80145c", "url": "https://translate-dev.freebsd.org/api/units/1811897/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.087619Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "`[vf]scanf`(const char *format, ...)" ], "previous_source": "", "target": [ "`[vf]scanf`(const char *format, ...)" ], "id_hash": -8960741469233845109, "content_hash": -8960741469233845109, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:117", "context": "", "note": "type: Table", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 21, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 4, "source_unit": "https://translate-dev.freebsd.org/api/units/1361870/?format=api", "priority": 100, "id": 1811898, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=03a50d1c1a346c8b", "url": "https://translate-dev.freebsd.org/api/units/1811898/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.088150Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "May overflow its arguments." ], "previous_source": "", "target": [ "Может переполнить свои аргументы." ], "id_hash": 1042920546343593252, "content_hash": 1042920546343593252, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:121", "context": "", "note": "type: Table", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 22, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 4, "source_unit": "https://translate-dev.freebsd.org/api/units/1361872/?format=api", "priority": 100, "id": 1811899, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=8e7932b615c42524", "url": "https://translate-dev.freebsd.org/api/units/1811899/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.088681Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "`realpath`(char *path, char resolved_path[])" ], "previous_source": "", "target": [ "`realpath`(char *path, char resolved_path[])" ], "id_hash": -2846945353143610957, "content_hash": -2846945353143610957, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:122", "context": "", "note": "type: Table", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 23, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 4, "source_unit": "https://translate-dev.freebsd.org/api/units/1361874/?format=api", "priority": 100, "id": 1811900, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=587d9e48faed11b3", "url": "https://translate-dev.freebsd.org/api/units/1811900/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.089223Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "May overflow the path buffer" ], "previous_source": "", "target": [ "Может переполнить буфер пути" ], "id_hash": 7830271542849110053, "content_hash": 7830271542849110053, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:126", "context": "", "note": "type: Table", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 24, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 5, "source_unit": "https://translate-dev.freebsd.org/api/units/1361876/?format=api", "priority": 100, "id": 1811901, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=ecaab67b4e5f0025", "url": "https://translate-dev.freebsd.org/api/units/1811901/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.089753Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "`[v]sprintf`(char *str, const char *format, ...)" ], "previous_source": "", "target": [ "`[v]sprintf`(char *str, const char *format, ...)" ], "id_hash": 5520538521897685452, "content_hash": 5520538521897685452, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:127", "context": "", "note": "type: Table", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 25, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 6, "source_unit": "https://translate-dev.freebsd.org/api/units/1361878/?format=api", "priority": 100, "id": 1811902, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=cc9ce4895e9251cc", "url": "https://translate-dev.freebsd.org/api/units/1811902/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.090269Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "May overflow the str buffer." ], "previous_source": "", "target": [ "Может переполнить буфер str." ], "id_hash": -7540618281767662171, "content_hash": -7540618281767662171, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:130", "context": "", "note": "type: Table", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 26, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 5, "source_unit": "https://translate-dev.freebsd.org/api/units/1361880/?format=api", "priority": 100, "id": 1811903, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=175a579fe86c0da5", "url": "https://translate-dev.freebsd.org/api/units/1811903/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.090808Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "Example Buffer Overflow" ], "previous_source": "", "target": [ "Пример переполнения буфера" ], "id_hash": -4795839322406069785, "content_hash": -4795839322406069785, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:132", "context": "", "note": "type: Title ===", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 27, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 3, "source_unit": "https://translate-dev.freebsd.org/api/units/1077824/?format=api", "priority": 100, "id": 1811904, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=3d71c18bb422d9e7", "url": "https://translate-dev.freebsd.org/api/units/1811904/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.091331Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "The following example code contains a buffer overflow designed to overwrite the return address and skip the instruction immediately following the function call. (Inspired by crossref:bibliography[Phrack,4])" ], "previous_source": "", "target": [ "Следующий пример кода содержит переполнение буфера, предназначенное для перезаписи адреса возврата и пропуска инструкции, следующей сразу после вызова функции. (Вдохновлено crossref:bibliography[Phrack,4])" ], "id_hash": -1553710882777474856, "content_hash": -1553710882777474856, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:135", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 28, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 26, "source_unit": "https://translate-dev.freebsd.org/api/units/1077826/?format=api", "priority": 100, "id": 1811905, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=6a701c2f1c63d8d8", "url": "https://translate-dev.freebsd.org/api/units/1811905/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.091843Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "#include <stdio.h>\n" ], "previous_source": "", "target": [ "#include <stdio.h>\n" ], "id_hash": 2500310435173648836, "content_hash": 2500310435173648836, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:139", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 29, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 2, "source_unit": "https://translate-dev.freebsd.org/api/units/1077828/?format=api", "priority": 100, "id": 1811906, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=a2b2e317f4ba49c4", "url": "https://translate-dev.freebsd.org/api/units/1811906/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.092434Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "void manipulate(char *buffer) {\n char newbuffer[80];\n strcpy(newbuffer,buffer);\n}\n" ], "previous_source": "", "target": [ "void manipulate(char *buffer) {\n char newbuffer[80];\n strcpy(newbuffer,buffer);\n}\n" ], "id_hash": -4367011059406461549, "content_hash": -4367011059406461549, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:144", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 30, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 8, "source_unit": "https://translate-dev.freebsd.org/api/units/1077830/?format=api", "priority": 100, "id": 1811907, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=4365429431e02593", "url": "https://translate-dev.freebsd.org/api/units/1811907/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.093016Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "int main() {\n char ch,buffer[4096];\n int i=0;\n" ], "previous_source": "", "target": [ "int main() {\n char ch,buffer[4096];\n int i=0;\n" ], "id_hash": -1935271772363453002, "content_hash": -1935271772363453002, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:148", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 31, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 7, "source_unit": "https://translate-dev.freebsd.org/api/units/1077832/?format=api", "priority": 100, "id": 1811908, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=65248893986f8db6", "url": "https://translate-dev.freebsd.org/api/units/1811908/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.093555Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ " while ((buffer[i++] = getchar()) != '\\n') {};\n" ], "previous_source": "", "target": [ " while ((buffer[i++] = getchar()) != '\\n') {};\n" ], "id_hash": 7568940903166651489, "content_hash": 7568940903166651489, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:150", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 32, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 7, "source_unit": "https://translate-dev.freebsd.org/api/units/1077834/?format=api", "priority": 100, "id": 1811909, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=e90a47a6432c2c61", "url": "https://translate-dev.freebsd.org/api/units/1811909/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.094111Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ " i=1;\n manipulate(buffer);\n i=2;\n printf(\"The value of i is : %d\\n\",i);\n return 0;\n}\n" ], "previous_source": "", "target": [ " i=1;\n manipulate(buffer);\n i=2;\n printf(\"The value of i is : %d\\n\",i);\n return 0;\n}\n" ], "id_hash": -2783125795295921758, "content_hash": -2783125795295921758, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:157", "context": "", "note": "type: delimited block . 4", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 33, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 13, "source_unit": "https://translate-dev.freebsd.org/api/units/1077836/?format=api", "priority": 100, "id": 1811910, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=596059d5b628f9a2", "url": "https://translate-dev.freebsd.org/api/units/1811910/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.094658Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "Let us examine what the memory image of this process would look like if we were to input 160 spaces into our little program before hitting return." ], "previous_source": "", "target": [ "Давайте рассмотрим, как будет выглядеть образ памяти этого процесса, если мы введем 160 пробелов в нашу небольшую программу перед нажатием Enter." ], "id_hash": 7240831616539028235, "content_hash": 7240831616539028235, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:160", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 34, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 27, "source_unit": "https://translate-dev.freebsd.org/api/units/1077838/?format=api", "priority": 100, "id": 1811911, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=e47c99fdde39eb0b", "url": "https://translate-dev.freebsd.org/api/units/1811911/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.095198Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "Obviously more malicious input can be devised to execute actual compiled instructions (such as exec(/bin/sh))." ], "previous_source": "", "target": [ "Очевидно, что можно разработать более вредоносные входные данные для выполнения реальных скомпилированных инструкций (например, exec(/bin/sh))." ], "id_hash": 6030096212964187820, "content_hash": 6030096212964187820, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:164", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 35, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 15, "source_unit": "https://translate-dev.freebsd.org/api/units/1077840/?format=api", "priority": 100, "id": 1811912, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=d3af348e8f289eac", "url": "https://translate-dev.freebsd.org/api/units/1811912/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.095746Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "Avoiding Buffer Overflows" ], "previous_source": "", "target": [ "Избегание переполнения буфера" ], "id_hash": 1482672818427487656, "content_hash": 1482672818427487656, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:165", "context": "", "note": "type: Title ===", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 36, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 3, "source_unit": "https://translate-dev.freebsd.org/api/units/1077842/?format=api", "priority": 100, "id": 1811913, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=94938312a47f65a8", "url": "https://translate-dev.freebsd.org/api/units/1811913/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.096338Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "The most straightforward solution to the problem of stack-overflows is to always use length restricted memory and string copy functions. `strncpy` and `strncat` are part of the standard C library. These functions accept a length value as a parameter which should be no larger than the size of the destination buffer. These functions will then copy up to 'length' bytes from the source to the destination. However there are a number of problems with these functions. Neither function guarantees NUL termination if the size of the input buffer is as large as the destination. The length parameter is also used inconsistently between strncpy and strncat so it is easy for programmers to get confused as to their proper usage. There is also a significant performance loss compared to `strcpy` when copying a short string into a large buffer since `strncpy` NUL fills up the size specified." ], "previous_source": "", "target": [ "Наиболее простое решение проблемы переполнения стека — всегда использовать функции копирования памяти и строк с ограничением длины. `strncpy` и `strncat` являются частью стандартной библиотеки C. Эти функции принимают параметр длины, который не должен превышать размер целевого буфера. Затем эти функции копируют до 'length' байтов из источника в назначение. Однако у этих функций есть ряд проблем. Ни одна из них не гарантирует завершающий NUL, если размер входного буфера равен размеру целевого. Параметр длины также используется неодинаково между `strncpy` и `strncat`, что может сбивать программистов с толку относительно их правильного использования. Также наблюдается значительное снижение производительности по сравнению с `strcpy` при копировании короткой строки в большой буфер, поскольку `strncpy` заполняет оставшееся пространство до указанного размера символами NUL." ], "id_hash": -4657702395399893570, "content_hash": -4657702395399893570, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:175", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 37, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 146, "source_unit": "https://translate-dev.freebsd.org/api/units/1194754/?format=api", "priority": 100, "id": 1811914, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=3f5c845954b40dbe", "url": "https://translate-dev.freebsd.org/api/units/1811914/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.096932Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "Another memory copy implementation exists to get around these problems. The `strlcpy` and `strlcat` functions guarantee that they will always null terminate the destination string when given a non-zero length argument." ], "previous_source": "", "target": [ "Существует другая реализация копирования памяти для решения этих проблем. Функции `strlcpy` и `strlcat` гарантируют, что они всегда завершат строку назначения нулевым символом при передаче аргумента ненулевой длины." ], "id_hash": -3011669586385604985, "content_hash": -3011669586385604985, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:178", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 38, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 31, "source_unit": "https://translate-dev.freebsd.org/api/units/1194756/?format=api", "priority": 100, "id": 1811915, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=56346677baa36e87", "url": "https://translate-dev.freebsd.org/api/units/1811915/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.097604Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "Compiler based run-time bounds checking" ], "previous_source": "", "target": [ "Скомпилированная проверка границ во время выполнения" ], "id_hash": 5015406215195834292, "content_hash": 5015406215195834292, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:179", "context": "", "note": "type: Title ====", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 39, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 5, "source_unit": "https://translate-dev.freebsd.org/api/units/1077848/?format=api", "priority": 100, "id": 1811916, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=c59a4d614508b7b4", "url": "https://translate-dev.freebsd.org/api/units/1811916/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.098195Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "Unfortunately there is still a very large assortment of code in public use which blindly copies memory around without using any of the bounded copy routines we just discussed. Fortunately, there is a way to help prevent such attacks - run-time bounds checking, which is implemented by several C/C++ compilers." ], "previous_source": "", "target": [ "К сожалению, до сих пор существует очень большое количество кода в открытом доступе, который бездумно копирует память, не используя ни одну из ограниченных функций копирования, которые мы только что обсудили. К счастью, есть способ помочь предотвратить такие атаки — проверка границ во время выполнения, которая реализована в нескольких компиляторах C/C++." ], "id_hash": -1009834674466087249, "content_hash": -1009834674466087249, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:183", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 40, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 50, "source_unit": "https://translate-dev.freebsd.org/api/units/1194758/?format=api", "priority": 100, "id": 1811917, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=71fc58b6c2939eaf", "url": "https://translate-dev.freebsd.org/api/units/1811917/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.098756Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "ProPolice is one such compiler feature, and is integrated into man:gcc[1] versions 4.1 and later. It replaces and extends the earlier StackGuard man:gcc[1] extension." ], "previous_source": "", "target": [ "ProPolice — это одна из таких функций компилятора, интегрированная в man:gcc[1] версий 4.1 и выше. Она заменяет и расширяет более раннее расширение StackGuard для man:gcc[1]." ], "id_hash": -943732280010171908, "content_hash": -943732280010171908, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:186", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 41, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 24, "source_unit": "https://translate-dev.freebsd.org/api/units/1194760/?format=api", "priority": 100, "id": 1811918, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=72e7307dceec99fc", "url": "https://translate-dev.freebsd.org/api/units/1811918/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.099404Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "ProPolice helps to protect against stack-based buffer overflows and other attacks by laying pseudo-random numbers in key areas of the stack before calling any function. When a function returns, these \"canaries\" are checked and if they are found to have been changed the executable is immediately aborted. Thus any attempt to modify the return address or other variable stored on the stack in an attempt to get malicious code to run is unlikely to succeed, as the attacker would have to also manage to leave the pseudo-random canaries untouched." ], "previous_source": "", "target": [ "ProPolice помогает защититься от переполнений буфера на стеке и других атак, размещая псевдослучайные числа в ключевых областях стека перед вызовом любой функции. Когда функция завершается, эти \"канарейки\" проверяются, и если обнаруживается, что они были изменены, выполнение программы немедленно прекращается. Таким образом, любая попытка изменить адрес возврата или другие переменные, хранящиеся на стеке, с целью запуска вредоносного кода, вряд ли увенчается успехом, так как злоумышленнику также необходимо оставить псевдослучайные канарейки нетронутыми." ], "id_hash": -8922128668721752089, "content_hash": -8922128668721752089, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:190", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 42, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 89, "source_unit": "https://translate-dev.freebsd.org/api/units/1194762/?format=api", "priority": 100, "id": 1811919, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=042e3b3f4c82d7e7", "url": "https://translate-dev.freebsd.org/api/units/1811919/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.099960Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "Recompiling your application with ProPolice is an effective means of stopping most buffer-overflow attacks, but it can still be compromised." ], "previous_source": "", "target": [ "Перекомпиляция вашего приложения с использованием ProPolice является эффективным способом предотвращения большинства атак, связанных с переполнением буфера, но оно всё ещё может быть скомпрометировано." ], "id_hash": 5890821570112056758, "content_hash": 5890821570112056758, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:192", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 43, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 20, "source_unit": "https://translate-dev.freebsd.org/api/units/1077856/?format=api", "priority": 100, "id": 1811920, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=d1c06701d1bcedb6", "url": "https://translate-dev.freebsd.org/api/units/1811920/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.100588Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "Library based run-time bounds checking" ], "previous_source": "", "target": [ "Библиотечная проверка границ во время выполнения" ], "id_hash": 6579128004137501311, "content_hash": 6579128004137501311, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:193", "context": "", "note": "type: Title ====", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 44, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 5, "source_unit": "https://translate-dev.freebsd.org/api/units/1077858/?format=api", "priority": 100, "id": 1811921, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=db4dc20fe270c27f", "url": "https://translate-dev.freebsd.org/api/units/1811921/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.101143Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "Compiler-based mechanisms are completely useless for binary-only software for which you cannot recompile. For these situations there are a number of libraries which re-implement the unsafe functions of the C-library (`strcpy`, `fscanf`, `getwd`, etc..) and ensure that these functions can never write past the stack pointer." ], "previous_source": "", "target": [ "Механизмы на основе компилятора совершенно бесполезны для проприетарного программного обеспечения, которое невозможно перекомпилировать. Для таких ситуаций существует ряд библиотек, которые переопределяют небезопасные функции стандартной библиотеки C (`strcpy`, `fscanf`, `getwd` и т.д.) и гарантируют, что эти функции никогда не смогут записать данные за указатель стека." ], "id_hash": -8902647950753050222, "content_hash": -8902647950753050222, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:197", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 45, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 46, "source_unit": "https://translate-dev.freebsd.org/api/units/1194764/?format=api", "priority": 100, "id": 1811922, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=047370db67015192", "url": "https://translate-dev.freebsd.org/api/units/1811922/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.101681Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "libsafe" ], "previous_source": "", "target": [ "libsafe" ], "id_hash": -5033167929895385733, "content_hash": -5033167929895385733, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:199", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 46, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 1, "source_unit": "https://translate-dev.freebsd.org/api/units/1077862/?format=api", "priority": 100, "id": 1811923, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=3a26986f43b2857b", "url": "https://translate-dev.freebsd.org/api/units/1811923/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.102245Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "libverify" ], "previous_source": "", "target": [ "libverify" ], "id_hash": -7953553575076114393, "content_hash": -7953553575076114393, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:200", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 47, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 1, "source_unit": "https://translate-dev.freebsd.org/api/units/1077864/?format=api", "priority": 100, "id": 1811924, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=119f4d29c78cd027", "url": "https://translate-dev.freebsd.org/api/units/1811924/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.103080Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "libparanoia" ], "previous_source": "", "target": [ "libparanoia" ], "id_hash": -8260018767836013183, "content_hash": -8260018767836013183, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:201", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 48, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 1, "source_unit": "https://translate-dev.freebsd.org/api/units/1077866/?format=api", "priority": 100, "id": 1811925, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=0d5e84b1b1131d81", "url": "https://translate-dev.freebsd.org/api/units/1811925/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.103614Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "Unfortunately these library-based defenses have a number of shortcomings. These libraries only protect against a very small set of security related issues and they neglect to fix the actual problem. These defenses may fail if the application was compiled with -fomit-frame-pointer. Also, the LD_PRELOAD and LD_LIBRARY_PATH environment variables can be overwritten/unset by the user." ], "previous_source": "", "target": [ "К сожалению, эти защиты на основе библиотек имеют ряд недостатков. Они защищают лишь от очень небольшого набора проблем, связанных с безопасностью, и не устраняют основную причину. Эти защиты могут не сработать, если приложение было скомпилировано с флагом -fomit-frame-pointer. Кроме того, переменные окружения LD_PRELOAD и LD_LIBRARY_PATH могут быть перезаписаны или сброшены пользователем." ], "id_hash": 1754424202139363669, "content_hash": 1754424202139363669, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:206", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 49, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 54, "source_unit": "https://translate-dev.freebsd.org/api/units/1194766/?format=api", "priority": 100, "id": 1811926, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=9858f78439dd6955", "url": "https://translate-dev.freebsd.org/api/units/1811926/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.104129Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "SetUID issues" ], "previous_source": "", "target": [ "Проблемы с SetUID" ], "id_hash": -8815010064804018773, "content_hash": -8815010064804018773, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:208", "context": "", "note": "type: Title ==", "flags": "no-wrap", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 50, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 2, "source_unit": "https://translate-dev.freebsd.org/api/units/1077870/?format=api", "priority": 100, "id": 1811927, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=05aacb0ccbdd05ab", "url": "https://translate-dev.freebsd.org/api/units/1811927/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.104745Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "There are at least 6 different IDs associated with any given process, and you must therefore be very careful with the access that your process has at any given time. In particular, all seteuid applications should give up their privileges as soon as it is no longer required." ], "previous_source": "", "target": [ "Существует как минимум 6 различных идентификаторов, связанных с каждым процессом, поэтому необходимо очень внимательно следить за уровнем доступа вашего процесса в любой момент времени. В частности, все приложения с seteuid должны отказываться от своих привилегий, как только в них больше нет необходимости." ], "id_hash": -4571809298422759875, "content_hash": -4571809298422759875, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:212", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 51, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 48, "source_unit": "https://translate-dev.freebsd.org/api/units/1194768/?format=api", "priority": 100, "id": 1811928, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=408dabaa62aefe3d", "url": "https://translate-dev.freebsd.org/api/units/1811928/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.105288Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksdevelopers-handbooksecure_index/ru/?format=api", "source": [ "The real user ID can only be changed by a superuser process. The login program sets this when a user initially logs in and it is seldom changed." ], "previous_source": "", "target": [ "Действительный идентификатор пользователя может быть изменён только процессом с правами суперпользователя. Программа login устанавливает его при первоначальном входе пользователя в систему, и он редко изменяется." ], "id_hash": 3388333610998841011, "content_hash": 3388333610998841011, "location": "documentation/content/en/books/developers-handbook/secure/_index.adoc:215", "context": "", "note": "type: Plain text", "flags": "", "labels": [], "state": 20, "fuzzy": false, "translated": true, "approved": false, "position": 52, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 28, "source_unit": "https://translate-dev.freebsd.org/api/units/1194770/?format=api", "priority": 100, "id": 1811929, "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksdevelopers-handbooksecure_index/ru/?checksum=af05c777901a3eb3", "url": "https://translate-dev.freebsd.org/api/units/1811929/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2025-05-25T08:25:35.105843Z" } ] }