SHT30 온습도 모니터링 시스템 전체 소스(서버 PHP, STM32 펌웨어, SQL, 테스트). 전체 코드리뷰에서 도출된 보안 하드닝 10건 반영: - 요청 서명 HMAC-SHA256 전환(펌웨어 sig.c/서버 config.php/호스트 패리티 동시) - 재전송 방어 + 기본 API_KEY fail-closed + 디바이스 문자열 정제(api/sensor_data.php) - 오프라인 SMS 중복 발송 경합 제거(cron_heartbeat.php, 원자적 선점) - CSV 수식 주입 방지(monthly_report.php), 감사로그 회전 락(retention_cleanup.php) - 브루트포스 카운터 원자화(login.php), 예시 TOTP 비밀키 무효화, 마이그레이션 멱등화 _backup/(하드코딩 실 비밀값 포함)·config.local.php·런타임 상태는 .gitignore 제외.
18 lines
814 B
C
18 lines
814 B
C
/* =============================================================================
|
|
* reporter.h - 이벤트 보고 헬퍼 (본문 생성 -> 서명 -> TLS POST + 재시도)
|
|
*
|
|
* app_config.h 의 호스트/경로/재시도 설정과 board_config.h 의 기기 식별값을
|
|
* 사용한다. timesync_now() 로 timestamp 를 채운다.
|
|
*
|
|
* RPi 대응:
|
|
* report_sht30_event <- sht30_monitor.py post_reading()
|
|
* ===========================================================================*/
|
|
#ifndef REPORTER_H
|
|
#define REPORTER_H
|
|
|
|
/* SHT30 측정 보고. event_type: "startup"|"periodic".
|
|
* 반환: 0 성공(HTTP 200), 음수 실패. 내부에서 재시도한다. */
|
|
int report_sht30_event(const char *event_type, double temp_c, double rh,
|
|
const char *metric_status);
|
|
|
|
#endif /* REPORTER_H */
|