بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

سوال : قرار دادن دیتابیس در محلی به دور از دسترس کاربر

مدیریت گفتگو
Mseif 12 سال پیش
آخرین تغییر: 11 سال پیش

دوستان من می خوام دیتابیس رو در حافظه داخلی ذخیره کنم و نمی خوام در پوشه data / pakages ذخیره بشه ؟؟
 ممنون و سپاس

نظرات

سامان پاپی 12 سال پیش
خوب نمیتونه پیداش مگه این که روت باشه اگرم روت باشه میتونی مثل خیلی خیلی پوشه بسازی بفرستیش اون جا با یه اسم مسخره که به دیتا بیس نخره اون موقع عمرا بتونه پیداش کنه
Mseif 12 سال پیش
یعنی راهی دیگه ای نیست ؟؟ باید بریم توی کوچه پس کوچه اندروید :))
hamed 12 سال پیش
البته این ها همش درباره کاربر عادیه. وگرنه کاربرای برنامه نویس که خیلی راحت از روی سورس کد شما یا مانیتور کردن لیست فایل های شما قبل و بعد از نصب برنامه یا به روش های دیگه این را پیدا می کنند. بهترین کار اینه که اگر اطلاعات دیتابیس براتون مهمه از سیستم های کدینگ استفاده کنید که تو انجمن زیاد روش بحث شده و می تونید سرچ کنید.
Mseif 11 سال پیش
دوستان من می خوام دیتابیس رو در حافظه داخلی ذخیره کنم و نمی خوام در پوشه data / pakages ذخیره بشه ؟؟
سامان پاپی 11 سال پیش
خیلی ساده هستش ادرس کپی رو تغییر بده . پاسخ رو الان اضا فه میکنم

پاسخ‌ها 3

mort 11 سال پیش

یه سوال الان اگه دیتابیس رو سرور باشه بعد چطوری کاربر یا حتی برنامه نویس میتونه به دیتابیس دسترسی داشته باشه ؟

چطوری تو php امنیت دیتابیس تامین هست ولی اینجا نیست ؟

نظرات

سامان پاپی 11 سال پیش

تغییر ادرس database ( دیتابیس )

 package com.amirahmadadibi.project.app.book;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;



import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;


public class database extends SQLiteOpenHelper {
//خط زیر سورسی هست که قرار دیتابیس توی اون کپی بشه
//------------------------------------------------------------------- public final String path = "data/data/com.amirahmadadibi.project.app.book/databases/";
//------------------------------------------------------------------------- public final String Name = "dataofstorys"; public SQLiteDatabase mydb; private final Context mycontext; public database(Context context) { super(context, "dataofstorys", null, 1); mycontext = context; } @Override public void onCreate(SQLiteDatabase arg0) { } @Override public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) { } public void useable() { boolean checkdb = checkdb(); if (checkdb) { } else { this.getReadableDatabase(); try { copydatabase(); } catch (IOException e) { } } } public void open() { mydb = SQLiteDatabase.openDatabase(path + Name, null, SQLiteDatabase.OPEN_READWRITE); } @Override public void close() { mydb.close(); } public boolean checkdb() { SQLiteDatabase db = null; try { db = SQLiteDatabase.openDatabase(path + Name, null, SQLiteDatabase.OPEN_READONLY); } catch (SQLException e) { } return db != null ? true : false; } public void copydatabase() throws IOException { OutputStream myOutput = new FileOutputStream(path + Name); byte[] buffer = new byte[1024]; int lenght; InputStream myInput = mycontext.getAssets().open(Name); while ((lenght = myInput.read(buffer)) > 0) { myOutput.write(buffer, 0, lenght); } myInput.close(); myOutput.flush(); myOutput.close(); }

 این کد کلا برای کار های کپی دیتا بیس هستش چک میکنه که ایا دیتا بیس کپی شده یا نه اگه نه کپی میکنه اگه اره نمیکنه 

نظرات

Mseif 11 سال پیش
ممنون از شما پس بنده اگر مسیر path رو به صورت دستی چیزی جدای از ا مسیر بالا که به بخش data ختم میشه بزارم مشکلی نداره می خوام طوری باشه که دیتام به هیچ عنوان در میسر پوشه data نباشه
کاشی زاده 11 سال پیش

برای اینکه از سرقت اطلاعات جلوگیری کنی لزومی نیست دیتابیس رو مخفی کنی ، چون به راحتی میشه پیدا کردش بهترین کار این هست که دیتابیست رو انکریپت بکنی و با استفاده از لایبری زیر بازش کنی اینطوری دیگه هیچ کس نمیتونه به دیتابیس ما دسترسی داشته باشه .

 

لینک لایبری

 

موفق باشید :)

نظرات

Mseif 11 سال پیش
ممنون واقعا بزرگترین مشکل بنده همینه و ترس از افشا شدن داده هام دارم بعد استفاده از این لایبراری مشکلی واسه خونده شدن اطلاعات بوجود نمیاد و اینکه اطلاعات آپدیت شده به صورت اینکریپت شده ذخیره میشن ؟
کاشی زاده 11 سال پیش
بله مشکلی پیش نمیاد ، لایبری کاملی هست فقط یکم حجمش زیاده

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .