---
title: "حسابدار من چطور از داده‌های حسابداری شما محافظت می‌کند"
description: "حسابدار من چطور از داده‌های حسابداری محافظت می‌کند: HTTPS، رمز عبور هش‌شده، ورود دومرحله‌ای، کلید API هش‌شده، وب‌هوک امضاشده، سطح دسترسی و گزارش ممیزی کامل."
canonical: https://hesabdar.my/security
language: fa
publisher: "حسابدار من"
updated: 2026-11-05
---

# حسابدار من چطور از داده‌های حسابداری شما محافظت می‌کند

> حسابدار من چطور از داده‌های حسابداری محافظت می‌کند: HTTPS، رمز عبور هش‌شده، ورود دومرحله‌ای، کلید API هش‌شده، وب‌هوک امضاشده، سطح دسترسی و گزارش ممیزی کامل.

دفاتر شما سوابق مالی حساسی دارند؛ به همین دلیل حفاظت از آن‌ها چندلایه است: ارتباط رمزنگاری‌شده، اطلاعات ورود هش‌شده، دسترسی سخت‌گیرانه برای هر کسب‌وکار، اسنادی که بی‌صدا بازنویسی نمی‌شوند و گزارش ممیزی از همه تغییرات. این صفحه فقط کارهایی را شرح می‌دهد که محصول واقعاً انجام می‌دهد.

## کنترل‌های امنیتی که در همه حساب‌ها فعال است

این کنترل‌ها برای همه مشتریان روشن است؛ سطح امنیتی ویژه یا پولی وجود ندارد.

### HTTPS در همه‌جا

وب‌سایت، نرم‌افزار و API از طریق اتصال رمزنگاری‌شده HTTPS ارائه می‌شوند.

### رمز عبور هش‌شده

رمز عبور به‌صورت هش bcrypt ذخیره می‌شود و هیچ‌کس در حسابدار من نمی‌تواند آن را بخواند.

### ورود دومرحله‌ای

کدهای یک‌بارمصرف زمان‌محور (TOTP) را از هر اپلیکیشن احراز هویت اضافه کنید. کلید مخفی آن رمزنگاری‌شده نگهداری می‌شود.

### کلید API فقط یک بار نمایش داده می‌شود

کلیدها به‌صورت هش SHA-256 ذخیره می‌شوند، فقط به یک کسب‌وکار دسترسی دارند و هر زمان قابل تعویض یا ابطال‌اند.

### دسترسی مبتنی بر نقش

هر درخواست با نقش و مجوزهای عضو در همان کسب‌وکار مشخص سنجیده می‌شود.

### سند قطعی محافظت‌شده

سند قطعی ویرایش نمی‌شود و با سند برگشتی اصلاح می‌شود؛ تاریخ قفل هم دوره‌های بسته‌شده را ثابت نگه می‌دارد.

### گزارش ممیزی کامل

چه کسی، چه کاری، چه زمانی و از کدام IP انجام داده؛ همراه با مقدار قبلی و جدید هر فیلد تغییرکرده.

### وب‌هوک امضاشده

هر ارسال یک امضای HMAC-SHA256 روی زمان ارسال و بدنه پیام دارد.

با جزئیات

پشت هر کنترل امنیتی چه اتفاقی می‌افتد

## امنیت حساب کاربری و ورود

رمز عبور شما هرگز به شکل خوانا ذخیره نمی‌شود و عامل دوم جلوی کسی را می‌گیرد که فقط رمز شما را دارد.

- رمز عبور پیش از ذخیره با الگوریتم bcrypt هش می‌شود. رمز باید دست‌کم ۸ نویسه و شامل حرف و عدد باشد.
- ورود دومرحله‌ای از کدهای استاندارد TOTP استفاده می‌کند و با اپلیکیشن‌های رایج احراز هویت کار می‌کند. کلید مخفی مشترک در پایگاه داده رمزنگاری‌شده است.
- تلاش‌های ناموفق پیاپی برای ورود و کدهای دومرحله‌ای اشتباه محدود می‌شوند تا حدس زدن رمز کند شود.
- حساب‌های جدید نشانی ایمیل خود را با یک پیوند امضاشده تأیید می‌کنند.
- فرم بازیابی رمز عبور، چه ایمیل ثبت شده باشد چه نه، پاسخ یکسانی می‌دهد؛ پس نمی‌توان از آن برای کشف حساب‌ها استفاده کرد.
- بازنشانی رمز عبور همه نشست‌ها را می‌بندد و تغییر آن، شما را از همه دستگاه‌های دیگر خارج می‌کند.

## نشست‌هایی که می‌بینید و می‌بندید

هر ورود یک توکن نشست می‌سازد که پس از ۳۰ روز منقضی می‌شود و هر زمان بخواهید می‌توانید آن را ابطال کنید.

- توکن نشست ۳۰ روز پس از ورود منقضی می‌شود و توکن‌های منقضی‌شده هر روز به‌طور خودکار از پایگاه داده حذف می‌شوند.
- در پروفایل خود فهرست نشست‌های فعال را به تفکیک دستگاه و مرورگر می‌بینید و می‌توانید هر کدام را ببندید.
- خروج از حساب، توکن را روی سرور حذف می‌کند، نه فقط در مرورگر.
- اگر حسابی تعلیق شود، نشست‌های باز آن از درخواست بعدی از کار می‌افتند.

## کلیدهای API و دسترسی از طریق API

کلیدهای API به‌صورت هش SHA-256 ذخیره می‌شوند؛ بنابراین هر کلید فقط یک بار، هنگام ساخت، به شما نشان داده می‌شود.

- فقط مالک کسب‌وکار می‌تواند کلید API بسازد، ببیند، تعویض یا ابطال کند.
- هر کلید متعلق به یک کسب‌وکار است و به هیچ کسب‌وکار دیگری دسترسی ندارد.
- هر کلید مجوز مشخصی دارد: فقط خواندن، یا خواندن و نوشتن. برای ابزارهای گزارش‌گیری از کلید فقط‌خواندنی استفاده کنید.
- می‌توانید برای کلید تاریخ انقضا تعیین کنید. کلید ابطال‌شده یا منقضی از درخواست بعدی رد می‌شود.
- تعویض کلید، کلید قبلی را ابطال و در یک مرحله کلید تازه‌ای با همان تنظیمات صادر می‌کند.
- هر کلید محدودیت نرخ درخواست جداگانه دارد (به‌طور پیش‌فرض ۱۲۰ درخواست در دقیقه) که در سرآیندهای `X-RateLimit-Limit` و `X-RateLimit-Remaining` اعلام می‌شود.
- هر درخواست API با متد، مسیر، کد وضعیت، نشانی IP و مدت پاسخ ثبت می‌شود و برای هر کلید، زمان و IP آخرین استفاده نمایش داده می‌شود.
- کلید یکتایی (Idempotency Key) اجازه می‌دهد درخواست را بدون ساخته شدن سند تکراری دوباره بفرستید. [صفحه برنامه‌نویسان](https://hesabdar.my/developers) و [راهنمای API حسابداری](https://hesabdar.my/guides/accounting-api) را ببینید.

## وب‌هوک‌های امضاشده

هر ارسال وب‌هوک با HMAC-SHA256 و کلید مخفی مخصوص همان وب‌هوک امضا می‌شود و امضا شامل زمان ارسال است تا پیام‌های تکراری و قدیمی قابل رد کردن باشند.

- هر ارسال سرآیندهای `X-Webhook-Signature` (عبارت `sha256=` و سپس چکیده هگز)، `X-Webhook-Timestamp`، `X-Webhook-Event` و `X-Webhook-Delivery` را دارد.
- امضا روی زمان ارسال، یک نقطه و بدنه خام درخواست محاسبه می‌شود.
- هر ارسال شناسه یکتا دارد تا سرور شما بتواند پیام‌های تکراری را نادیده بگیرد.
- ارسال ناموفق تا ۵ بار و با فاصله‌های فزاینده (۳۰ ثانیه، سپس ۲، ۱۰ و ۳۰ دقیقه) دوباره تلاش می‌شود.
- می‌توانید کلید مخفی وب‌هوک را تعویض کنید؛ ارسال‌های بعدی بلافاصله با کلید جدید امضا می‌شوند.

## سطح دسترسی و جداسازی کسب‌وکارها

هر کسب‌وکار دفتری جداست و هر درخواست، پیش از برگرداندن هر داده‌ای، با عضویت و نقش شما در همان کسب‌وکار سنجیده می‌شود.

- کاربری که عضو فعال یک کسب‌وکار نیست، حتی با نشست معتبر، خطای عدم دسترسی می‌گیرد.
- اعضا نقش‌هایی با مجوزهای جزئی دارند. می‌توانید از نقش‌های پیش‌فرض استفاده کنید یا نقش خودتان را تعریف کنید.
- برخی کارها فقط در اختیار مالک است، از جمله مدیریت کلیدهای API و حذف کسب‌وکار. با حذف کسب‌وکار، کلیدهای API فعال آن هم ابطال می‌شوند.
- اعضا با دعوت‌نامه ایمیلی اضافه می‌شوند و مالک هر زمان می‌تواند عضوی را حذف کند.
- به کسب‌وکار تعلیق‌شده نه از نرم‌افزار و نه از API نمی‌توان دسترسی داشت.

## یکپارچگی دفاتر و گزارش ممیزی

سند قطعی ویرایش یا حذف نمی‌شود و هر تغییر در کسب‌وکار با نام انجام‌دهنده، زمان و محل آن ثبت می‌شود.

- سند فقط وقتی ذخیره می‌شود که تراز باشد، یعنی جمع بدهکار با جمع بستانکار برابر باشد.
- سند قطعی با سند برگشتی اصلاح می‌شود. مالک می‌تواند برگرداندن سند قطعی به موقت را فعال کند (به‌طور پیش‌فرض خاموش است) و هر بار انجام آن ثبت می‌شود.
- تاریخ قفل، ثبت، ویرایش، قطعی کردن یا برگشت اسناد را در دوره‌های بسته‌شده، هم در نرم‌افزار و هم از طریق API، مسدود می‌کند.
- اسناد افتتاحیه، اختتامیه و برگشتی را سیستم می‌سازد، نه کاربر. در [راهنمای بستن سال مالی](https://hesabdar.my/guides/year-end-closing) بیشتر بخوانید.
- گزارش ممیزی نوع عملیات، کاربر یا کلید API، نشانی IP، مرورگر، زمان و فیلدهای تغییرکرده را با مقدار قبلی و جدید نگه می‌دارد.
- اگر کارشناس پشتیبانی ما برای رفع مشکل به‌جای یک کاربر وارد شود، این دسترسی پس از یک ساعت منقضی می‌شود و در گزارش ممیزی ثبت می‌شود.

## زیرساخت، ذخیره‌سازی و پرداخت

ترافیک با HTTPS رمزنگاری می‌شود، مدارک بارگذاری‌شده در فضای خصوصی می‌مانند و اطلاعات پرداخت هیچ‌وقت شامل شماره کارت شما نیست.

- hesabdar.my و api.hesabdar.my از طریق HTTPS (TLS) ارائه می‌شوند و پاسخ‌ها سرآیندهای امنیتی مانند `X-Content-Type-Options: nosniff` و سیاست ارجاع‌دهنده سخت‌گیرانه دارند.
- پیوست اسناد و رسیدهای پرداخت در فضای ذخیره‌سازی خصوصی نگهداری می‌شوند و فقط از طریق درخواست احرازشده به افراد دارای دسترسی ارائه می‌شوند.
- سرویس در حالت عملیاتی و با اشکال‌زدایی خاموش اجرا می‌شود. خطاهای پیش‌بینی‌نشده به‌جای جزئیات داخلی، یک کد پیگیری کوتاه نشان می‌دهند.
- گردانندگان سرویس از پایگاه داده و فضای ذخیره‌سازی فایل‌ها نسخه پشتیبان تهیه می‌کنند.
- ما هیچ‌وقت شماره کارت دریافت نمی‌کنیم. پرداخت رمزارزی از طریق NowPayments انجام می‌شود و اعلان‌های پرداخت آن پیش از افزودن اعتبار با امضای HMAC-SHA512 بررسی می‌شوند.
- در پرداخت با واریز بانکی، اعتبار فقط پس از بررسی رسید واریز توسط مدیر سیستم اضافه می‌شود.

## بررسی امضای وب‌هوک در Node.js

امضا را از بدنه خام پیام بسازید، مقایسه را در زمان ثابت انجام دهید و پیام‌هایی را که زمان ارسالشان چند دقیقه گذشته است رد کنید.

بررسی امضای وب‌هوک

| نوع سابقه | مدت نگهداری |
| --- | --- |
| گزارش درخواست‌های API (متد، مسیر، کد وضعیت، IP، مدت پاسخ) | ۹۰ روز |
| گزارش ارسال وب‌هوک (محتوای پیام، کد وضعیت پاسخ) | ۳۰ روز |
| سابقه اجرای گردش‌کارها | ۱۸۰ روز |
| توکن‌های نشست منقضی‌شده | حدود یک روز پس از انقضا حذف می‌شوند |

## شش عادت که دفاتر شما را امن‌تر می‌کند

امنیت پلتفرم با ماست؛ این تنظیمات در دست شماست.

- ورود دومرحله‌ای را فعال کنید، به‌خصوص برای مالکان کسب‌وکار.
- به هر عضو کمترین نقشی را بدهید که برای کارش لازم است و اعضایی را که می‌روند حذف کنید.
- برای هر اتصال یک کلید API جدا بسازید، کلید فقط‌خواندنی را ترجیح دهید و تاریخ انقضا تعیین کنید.
- کلید API را در مدیر اسرار یا متغیرهای محیطی سرور نگه دارید، نه در کد سمت کاربر یا مخزن عمومی. اگر احتمال لو رفتن کلیدی هست، آن را تعویض کنید.
- امضای همه وب‌هوک‌ها را بررسی و پیام‌های با زمان ارسال قدیمی را رد کنید.
- هر چند وقت یک بار گزارش ممیزی و نشست‌های فعال خود را مرور کنید.

## آسیب‌پذیری پیدا کرده‌اید؟ اول به ما بگویید

اگر فکر می‌کنید مشکلی امنیتی در حسابدار من پیدا کرده‌اید، به تیم امنیت ما ایمیل بزنید. از گزارش مشتریان و پژوهشگران مستقل استقبال می‌کنیم.

لطفاً این موارد را بنویسید

- شرح مشکل و اثر احتمالی آن
- نشانی صفحه یا مسیر API آسیب‌پذیر
- مراحل بازتولید، در صورت امکان با درخواست و پاسخ
- راه ارتباطی برای پرسش‌های بعدی

لطفاً این کارها را نکنید

- دسترسی، تغییر یا حذف داده‌های متعلق به مشتریان دیگر
- آزمون حمله منع سرویس، ارسال هرزنامه یا مهندسی اجتماعی علیه کارکنان یا کاربران ما
- انتشار جزئیات پیش از آنکه فرصت معقولی برای رفع مشکل داشته باشیم

آزمون را فقط با حساب‌ها و داده‌های متعلق به خودتان انجام دهید. دریافت گزارش را تأیید می‌کنیم، در طول کار شما را در جریان می‌گذاریم و رفع مشکل را اطلاع می‌دهیم. در حال حاضر برنامه پاداش باگ (Bug Bounty) نداریم.
