-
December 12th, 2018, 13:17
#1
رمز کردن اطلاعات api برای عدم استفاده از api ؟
اساتید ما یک api داریم میخوایم این وسط کسی از این اطلاعات استفاده نکنه.. مثلا رمزنگاری کنیم اطلاعات رو فقط مطمن شیم اسکریپت ما سمت کلاینت قابلیت خوندن رو داره.. سما کلاینت هم همون وب هست که با js اطلاعات رو میگیریم
-
-
December 12th, 2018 13:17
# ADS
-
December 12th, 2018, 19:04
#2
پاسخ : رمز کردن اطلاعات api برای عدم استفاده از api ؟
-
-
December 12th, 2018, 21:01
#3
عضو انجمن
پاسخ : رمز کردن اطلاعات api برای عدم استفاده از api ؟
سلام
کافیه یک کلید ایجاد کنید و به اسکریپت هم اون کلید رو بدید
سمت سرور api هم در صورتی خروجی بده که اون کلید ارسال شده باشه
در صورتی که کلید وجود نداشته باشه api اجرا نشه و خطا بده
-
تعداد تشکر ها از lizard.tiny به دلیل پست مفید
-
December 12th, 2018, 21:15
#4
پاسخ : رمز کردن اطلاعات api برای عدم استفاده از api ؟

نوشته اصلی توسط
lizard.tiny
سلام
کافیه یک کلید ایجاد کنید و به اسکریپت هم اون کلید رو بدید
سمت سرور api هم در صورتی خروجی بده که اون کلید ارسال شده باشه
در صورتی که کلید وجود نداشته باشه api اجرا نشه و خطا بده
مرسی اما مشکل اینه که کلید رو میشه از سورس درآورد..
-
-
December 12th, 2018, 21:49
#5
عضو انجمن
پاسخ : رمز کردن اطلاعات api برای عدم استفاده از api ؟
دسترسی به api رو به ip یا دامنه محدود کنید
-
تعداد تشکر ها از lizard.tiny به دلیل پست مفید
-
December 12th, 2018, 21:55
#6
عضو دائم
پاسخ : رمز کردن اطلاعات api برای عدم استفاده از api ؟
باسلام، در هر صورت اگر فرد کنجکاو باشد کاری از دست شما بر نخواهد آمد، پروتکلی هم برای اینکه تضمین کند کلاینت در صفحه مورد نظر توسط مرورگر خود از وب سرویس استفاد می کند وجود ندارد، اما راه هایی وجود دارد که زندگی را برای این فرد سختر کنید.
به طور مثال در هربار درخواست کاربر می توانید جواب را توسط یک کلید xor کنید سپس این کلید را به آخر جواب خود اضافه کنید سپس این دیتا را در قالب دیتا باینری به کاربر ارسال کنید، سمت کاربر با توجه به طول کلید، کلید را استخراج کرده و دیتا را دوباره xor کنید تا به دیتا اصلی برسید، همچنین اگر قرار است به طور مثال در صفحه mypage وب سرویس شروع به کار کند، در این صفحه یک سشن برای کاربر ایجاد کنید و در درخواست های بعدی از وجود سشن اطمینان حاصل کنید تا در حدی مطمئن شوید کاربر در صفحه مورد نظر از وب سرویس استفاده می کند.
-
تعداد تشکر ها از T.Toosi به دلیل پست مفید
-
December 12th, 2018, 22:03
#7
پاسخ : رمز کردن اطلاعات api برای عدم استفاده از api ؟

نوشته اصلی توسط
lizard.tiny
دسترسی به api رو به ip یا دامنه محدود کنید
فکر کنم متوجه نشدید.. کاربر من با مرورگرش به api وصل میشه..
- - - Updated - - -

نوشته اصلی توسط
T.Toosi
باسلام، در هر صورت اگر فرد کنجکاو باشد کاری از دست شما بر نخواهد آمد، پروتکلی هم برای اینکه تضمین کند کلاینت در صفحه مورد نظر توسط مرورگر خود از وب سرویس استفاد می کند وجود ندارد، اما راه هایی وجود دارد که زندگی را برای این فرد سختر کنید.
به طور مثال در هربار درخواست کاربر می توانید جواب را توسط یک کلید xor کنید سپس این کلید را به آخر جواب خود اضافه کنید سپس این دیتا را در قالب دیتا باینری به کاربر ارسال کنید، سمت کاربر با توجه به طول کلید، کلید را استخراج کرده و دیتا را دوباره xor کنید تا به دیتا اصلی برسید، همچنین اگر قرار است به طور مثال در صفحه mypage وب سرویس شروع به کار کند، در این صفحه یک سشن برای کاربر ایجاد کنید و در درخواست های بعدی از وجود سشن اطمینان حاصل کنید تا در حدی مطمئن شوید کاربر در صفحه مورد نظر از وب سرویس استفاده می کند.
مرسی.. چطوری باینری بفرستم ؟ اگر encrypt کردم چطوری کلید رو قاطیش کنم ؟!
-
-
December 13th, 2018, 02:30
#8
پاسخ : رمز کردن اطلاعات api برای عدم استفاده از api ؟
عزیز شما میخوای کسی نتونه از اون api استفاده بکنه و بزاره مثلا داخل سایت خودش و کاربر هاش استفاده کنن ؟
اگر فقط یکبار در هر مراجعه api اطلاعات میده این کد به دردتون میخوره . اگر نه کد دوم که مخصوص api هست رو تغییر بدید که سشن رو پاک نکنه
کد اول هنگام لود صفحه ی مورد نظر ( تنها در همین صفحه اجرا شود و نه کل اسکریپت ( عدم همپوشانی با api به خاطر حذف نشدن سشن))
کد PHP:
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
$api_sec = rand(500000, 5000000);
$_SESSION['api_sec'] = $api_sec;
setcookie("api_sec", $api_sec);
کد دوم برای فرانت . متغییر url رو به نام چیزی که هست برای api تغییر بدید
کد:
function getCookie(cname) {
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for(var i = 0; i <ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
var url = 'api.php?api_sec='+getCookie('api_sec');
کد سوم مربوط به api
کد PHP:
if(!isset($_SESSION['api_sec']) || empty($_SESSION['api_sec']) || !isset($_GET['api_sec']) || $_GET['api_sec'] != $_SESSION['api_sec']){
die;
} else{
$_SESSION['api_sec'] = "";
}
ویرایش توسط hoka : December 13th, 2018 در ساعت 02:50
-
تعداد تشکر ها از hoka به دلیل پست مفید
-
December 13th, 2018, 02:59
#9
پاسخ : رمز کردن اطلاعات api برای عدم استفاده از api ؟

نوشته اصلی توسط
hoka
عزیز شما میخوای کسی نتونه از اون api استفاده بکنه و بزاره مثلا داخل سایت خودش و کاربر هاش استفاده کنن ؟
اگر فقط یکبار در هر مراجعه api اطلاعات میده این کد به دردتون میخوره . اگر نه کد دوم که مخصوص api هست رو تغییر بدید که سشن رو پاک نکنه
کد اول هنگام لود صفحه ی مورد نظر ( تنها در همین صفحه اجرا شود و نه کل اسکریپت ( عدم همپوشانی با api به خاطر حذف نشدن سشن))
کد PHP:
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
$api_sec = rand(500000, 5000000);
$_SESSION['api_sec'] = $api_sec;
setcookie("api_sec", $api_sec);
کد دوم برای فرانت . متغییر url رو به نام چیزی که هست برای api تغییر بدید
کد:
function getCookie(cname) {
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for(var i = 0; i <ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
var url = 'api.php?api_sec='+getCookie('api_sec');
کد سوم مربوط به api
کد PHP:
if(!isset($_SESSION['api_sec']) || empty($_SESSION['api_sec']) || !isset($_GET['api_sec']) || $_GET['api_sec'] != $_SESSION['api_sec']){
die;
} else{
$_SESSION['api_sec'] = "";
}
مرسی.. این روش رو زده بودیم.. راحت میتونه با curl یک درخواست بزنه سشن یا کوکی رو بگیره و ادامه کار..
خودم فهمیدم 100% نمیشه امنش کرد.. اما دنبال راهی هستم به همین راحتی هم از api استفاده نکنه..
-
-
December 13th, 2018, 03:57
#10
پاسخ : رمز کردن اطلاعات api برای عدم استفاده از api ؟

نوشته اصلی توسط
hadiarya
مرسی.. این روش رو زده بودیم.. راحت میتونه با curl یک درخواست بزنه سشن یا کوکی رو بگیره و ادامه کار..
خودم فهمیدم 100% نمیشه امنش کرد.. اما دنبال راهی هستم به همین راحتی هم از api استفاده نکنه..
اینکه صد در صد . هرچیزی که انسان بتونه در نت رد بکنه یک کرالر هم میتونه . دیگه این بستگی به طرف داره چقدر فنی باشه . بیشترین درصد موفقیت این هست که سوال و جواب قرار بدید در صفحه و نتیجه رو ارسال کنید به api و با سشن تطبیق بدید .
ویرایش توسط hoka : December 13th, 2018 در ساعت 04:00
-