2011-06-07 2 views
0

Как новичок в C, я хочу знать, каковы основные советы по безопасности, которые должен знать каждый программист на C. Строго ссылаясь на C.Основные ошибки безопасности, которых следует избегать в C

+1

Не могли бы вы пояснить, что вы подразумеваете под * безопасностью *? – Exa

+3

Полный ответ, вероятно, будет до тех пор, пока сама C++-спецификация. –

+1

Это о C или о C++? В любом случае, область охвата довольно широка. – Cubbi

ответ

1

Думайте, что главная проблема - buffer overflow. Это может случиться с использованием функции fgets или scanf без указания максимального количества прочитанных байтов. Вредоносная строка ввода, превышающая выделенный буфер, может перекрывать обратный адрес в стеке, что приводит к выполнению предоставленного эксплойта.

0

Тема довольно большая, но для начала вам может понадобиться избежать сбоев сегментации и переполнения буфера.

+0

Ну, это цель, вы должны объяснить, как ее достичь. :) –

-1

Наиболее очевидный: переполнение буфера. Используйте strncpy вместо strcpy.

+4

'strncpy()' не является панацеей - он не гарантирует ничейных строк, поэтому его нужно использовать осторожно. –

+0

'strncpy' просто не должен использоваться подавляющим большинством программистов. Если вы не хотите отличить, кто должен его использовать, вы не из тех, кто должен его использовать. :-) –

Смежные вопросы