آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

امکان دستکاری ورودی تابع در جاوا

مهدی  9 سال پیش  9 سال پیش
0 0

سلام. یه سوالی برام ایجاد شده که گفتم شاید بتونم پاسخ مناسبی اینجا براش پیدا کنم.

من یه المنت دارم به شکل زیر:

 <span onclick="testFunction(1,'<?=$itemid?>')"></span>

خوب به این span یک تابعی دادم تا زمان کلیک روش اجرا بشه، مشکل من این هست که کاربر می تونه با مشاهده سورس و تغییر ورودی ها به تابع کمی دردسر سازی کنه...

 

ایا راهی وجود داره که بشه این مشکلو حل کرد؟

0 0
سلام. این فانکشن کارش چی هست ؟ در اون ajax زده میشه ؟ (9 سال پیش)
0 0
سلام. نمی دونم چرا چنین سوالی رو کردید. چه تفاوتی داره؟ م می خوام به طوری تابع صدا زده بشه که اولا اصلا نام تابع اونجا درج نشه و اینکه نشه اصلا ورودی هاش رو مشاهده کرد (9 سال پیش)
0 0
دلیل این سوالم این بود که ببینم فقط در سطح js باید کاری انجام بدیم ، یا در سطح php هم میشه کاری انجام داد. پاسخی که در پست بعد ارسال کردم در شرایطی که ajax وجود داشته باشه روش خوبی هست. (9 سال پیش)
 برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال 
Mehrad  9 سال پیش
0 0

سلام
یکی از راه هایی که میشه کار رو سخت کرد ، encode و decode کردن id ی مورد نظر هست. یعنی :

<span onclick="testFunction(1,'<?php echo base64_encode($itemid) ?>')"></span>
 

به این ترتیب کاربر از عدد واقعی ای که در اینجا بوده آگاهی نداره و فقط یکسری عدد و حروف نا مفهوم رو میبینه. و در جایی که میخواید از این id استفاده کنید (مثلا در کنترلر مورد نظرتون ) باید decode انجام بدید تا id واقعی بدست بیاد :

 $id = base64_decode($encodedId);

البته بهتر هست فرمول رو پیچیده تر کنید ، چون توابعی مثل base64 شناخته شده هستند.

 
0 0
ممنون راه مناسبی هست. اما راهی وجود نداره که به صورت مستقیم تابع رو اونجا درج نکنیم؟ (9 سال پیش)
0 0
چرا میخواید تابع رو در اونجا درج نکنید ؟ (9 سال پیش)
0 0
خوب نگاه کنید، وقتی من تابع رو اونجا درج می کنم به طبع ورودی هاش هم اونجا نمایش داده میشه...(حالا شما روشی رو فرمودی که ورودی رو کد میکنه.) می خوام به صورتی باشه که حتی اگر شخصی کمی از کد نویسی و ... سر در میاره به همین راحتی نتونه تابع رو تشخیص بده و ورودی های اون رو تغییر بده. من داخل بعضی از وب سایت ها دیدم که به این شکل درج می کنند: این چطوریه؟ نمیدونم :( (9 سال پیش)
پاسخ به سوال 
مهدی  9 سال پیش
0 0

خوب نگاه کنید، وقتی من تابع رو اونجا درج می کنم به طبع ورودی هاش هم اونجا نمایش داده میشه...(حالا شما روشی رو فرمودی که ورودی رو کد میکنه.) می خوام به صورتی باشه که حتی اگر شخصی کمی از کد نویسی و ... سر در میاره به همین راحتی نتونه تابع رو تشخیص بده و ورودی های اون رو تغییر بده. من داخل بعضی از وب سایت ها دیدم که به این شکل درج می کنند: این چطوریه؟
 <a id="poperbase" href="javascript:void(0)"> <i class="fa fa-heart" aria-hidden="true"></i> </a> 

نمیدونم :( 

پاسخ به سوال 
Mehrad  9 سال پیش
+1 0

ببینید با کلیک روی تگ a ، ما به صفحه دیگری هدایت میشیم. اما بروزر در صورتی به صفحه دیگر هدایت میشه که اون صفحه واقعا وجود داشته باشه.
زمانیکه اتریبیوت href رو مقدار javascript:void(0) قرار میدیم ، یعنی به بروزر میفهمونیم که با کلیک روی این تگ a قرار نیست صفحه جدیدی رو باز کنه و باید در همین صفحه بمونه (به این دلیل که void(0) مقدار undefined رو برمیگردونه). بطور خلاصه کار این کد این هست که تگ a رو از کار بندازه.

این احتمال وجود داره که مثلا با استفاده از id ـی تگ a ، براش برنامه نوشته شده باشه.


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