อยากสอบถามเกี่ยวกับการป้องกันไม่ใช้ผู้ใช้รู้ path ของไฟล์ภาพได้
ตอนนี้พอจะแก้ปัญหาได้บางอย่างแล้ว ไปอ่านใน manual ใช้การกำหนด quality เป็น 100 ภาพก็ชัดขึ้นมาหน่อย แต่ก็ยังไม่เท่าของจริงอยู่ดี ไฟล์ภาพก็ยังเป็น .bmp อยู่ แล้วก็กำหนดชื่อไฟล์ไม่ได้ด้วย
แต่เจอปัญหาอีกอย่างคือ ถ้าใช้วิธีสร้างภาพแบบนี้ ผมจะทำงานอย่างอื่นไม่ได้เลย เช่น
<?
$im = imagecreatefromjpeg("wallpaper/000012.jpg");
imagejpeg($im,'', '100');
echo "Hello";
?>
เมื่อ run ออกมาแล้ว ภาพขึ้น แต่คำว่า Hellp มันไม่ขึ้น
พอเปลี่ยนเป็น เอาให้แสดงคำก่อน
<?
echo "Hello";
$im = imagecreatefromjpeg("wallpaper/000012.jpg");
imagejpeg($im,'', '100');
?>
ทีนี้ถาพไม่ขึ้นเลย กลายเป็นตัวอะไรไม่รู้ ภาษาต่างดาวเต็มหน้าเลย
Date :
20 มิ.ย. 2548 16:04:10
By :
นัท
<?ob_start();
header("Content-type: image/jpeg");
$im = imagecreatefromjpeg("image/boa.jpg");
imagejpeg($im,'', '100');
imagedestroy($im);
echo "Hello";
?>
แบบนี้ Hello ก็ไม่ขึ้นอยู่ดี
Date :
20 มิ.ย. 2548 16:34:22
By :
นัท
การที่ไฟล์ภาพเป็น .bmp เข้าใจว่าเป็นเพราะคำสั่ง Session_Start();
เพราพอเอาออก ก็สามาร save ไฟล์เป็น .jpg ได้
แต่ปัญหาเดิมก็ยังอยู่คือ ไม่สามารถพิมพ์ข้อความใดๆได้ ทำได้แต่แสดงรูปอย่างเดียว
รวมถึงยังไม่สามารถกำหนดชื่อไฟล์ได้
Date :
20 มิ.ย. 2548 19:22:24
By :
นัท
ใช้ javascript ก็สิ้นเรื่องแล้ว กะอีแค่ป้องกันไม่ให้ผู้ใช้มองเห็น path ช่างง่ายดายนัก
วิธีทาง
1. เขียนเป็น style sheet ไว้ก็ได้ เมื่อมีการ เมาส์โอเวอร์ ก็ให้แสดงข้อความอื่นแทน พอเอาส์ออกก็แสดงข้อความอีก
ไม่ทราบว่าผู้ใช้จะมองเห็น path ได้อย่างไร
2. กำหนดเป็นจุดๆไป ดังตัวอย่าง
ตัวอย่าง
<a href="http://www.test/images/01.jpg" onmousemove="javascript:window.status='คุณกำลังจะดาวน์โหลดไฟล์รูปภาพนะ คุณจะมองไม่เห็น path นะครับ';" onmouseout="javascript:window.status='สถานะปกติครับ';">ดาวน์โหลดรูปภาพ</a>
ง่ายไหมล่ะครับ จะไปใช้คำสั่งสร้างรูปภาพมาอีกทำไม เห้อ
Date :
21 มิ.ย. 2548 08:58:01
By :
noom_programmer
คลิกขวาที่ภาพแล้วเลือก Properties ก็เห็นแล้วไม่ใช่เหรอครับ
Date :
21 มิ.ย. 2548 11:29:04
By :
นัท
ใช่ครับคลิกขวา proerties เห็น แต่คุณก็ใช้การเข้ารหัสควบคู่สิครับ เช่น path ./images/01.jpg คุณเข้ารหัสได้นี่ครับ
Date :
21 มิ.ย. 2548 12:11:28
By :
noom_programmer
เข้ารหัสยังไงเหรอครับ มีโค้ดตัวอย่างมั๊ย
หรือมีเว็บที่ให้ขอมูล ก็แนะนำด้วยครับจะเข้าไปศึกษาดู
Date :
21 มิ.ย. 2548 12:25:22
By :
นัท
ทำได้หมด อ่ะครับ จะบันทึกไฟล์เป็น jpg ก็ได้ เปลี่ยนชื่อก็ได้ ไม่เห็นจะมีปัญหา ใส่ข้อความในรูปก็ทำได้นิ ใช้ php
Date :
21 มิ.ย. 2548 13:19:41
By :
โจผี
^
^
^
ปัญหาคือทำอย่างไร ครับ
หาทางมาเป็นเดือนแล้วก็ยังทำไม่ได้
ไปถามที่ไหน ส่วนใหญ่ตอบเหมือนกันว่า
ทำได้ แต่ไม่มีใครบอกว่าทำอย่างไร
Date :
21 มิ.ย. 2548 15:53:47
By :
นัท
ผมว่าในของเว็บประมูลคงใช้ $_SERVER['HTTP_REFERER'] มังครับ
อย่าง ถ้า url ของกระทู้คือ
http://www.name.com?idofpost=1234
if ($_SERVER['HTTP_REFERER']!='http://www.name.com?idofpost=1234') {
โชว์โลโก้เว็บ
} else {
แสดงภาพที่ถูกต้อง
}
โดยเวลาอับโหลดเราอาจจะ Rename ชื่อภาพ ให้ตรงกับ id ของ Post แล้วใส่ลำดับที่ภาพต่อท้าย
1234-1.jpg ไรงี้ครับ
แบบนี้น่าจะโอเคนะครับ เพราะจะลิงค์มาไม่ได้เลย ถึงแม้จะโชว์ Path ก็ตาม
Date :
22 มิ.ย. 2548 14:52:13
By :
surenus
^
^
^
ไม่น่าได้มั๊ง เพราะมันจะเข็คได้ต่อเมื่อผ่านโค้ด php
แต่ถ้ากดมาที่ไฟล์รูปเลย มันจะไปเช็คตอนไหนว่าเข้ามาจากหน้าไหน
ยังไงเดี๋ยวลองดูเพื่อความชัวร์
Date :
22 มิ.ย. 2548 18:19:57
By :
นัท
ก็ใช้ไฟล์ PHP เรียกรูปมาแสดงสิครับใช้ include file เข้ามาใน แท็ก image น่ะ
Date :
23 มิ.ย. 2548 09:50:13
By :
surenus
ที่ว่าคลิ๊กขวาเห็น path มีวิธีแก้แล้วครับ ป้องกันการคลิกขวาซะเลย ....ไม่มีใครคลิกขวาได้แน่นอนครับ
ผมว่าใช้ javascript ง่ายกว่าเห็นๆ ครับ ผมใช้วิธีนี้อยู่...
Date :
23 มิ.ย. 2548 10:55:05
By :
noom_programmer
ผมมีฟังก์ชันมาให้นะ...
//ฟังชัน ************** copyright.js ****************//
function rightclick()
{
if(event.button==2){
alert("ฮั่นแน่!!! รู้นะคิดอารายอยู่");
}
}
document.onmousedown=rightclick;
if(document.layers){
window.captureEvents(Event.Mousedown);
}
//**************เวลาเรียกใช้*************
<script language="javascript" src="./function/copyright.js"></script>
แค่นี้ครับ คลิกขวาไม่ได้แย้ว ..............
Date :
23 มิ.ย. 2548 10:59:57
By :
noom_programmer
ป้องกันคลิกขวาแล้วเขาจะ save ภาพยังไงอ่ะครับ
ถ้าไม่ได้ใช ie มันจะไม่มี icon ลัดที่จะขึ้นมาที่มุมภาพด้วย
Date :
23 มิ.ย. 2548 14:30:57
By :
นัท
คือจุดประสงค์ไม่ได้ป้องกันคน save ภาพอ่ะครับ
คือที่จะป้องกันจริงๆคือ
1. ป้องการคนรู้ path ของที่เก็บภาพ แล้วใช้โปรแกรม ดูดภาพดูดภาพไปทั้ง folder
2. เพื่อให้คนที่เข้ามาดูภาพหรือ save ภาพ ต้องเข้ามา save จากหน้าเว็บ เพราะในหน้านั้นจะมีเครดิตคนทำภาพ และข้อมูลอื่นๆบอกไว้
3. เพื่อป้องกันการใช้พื้นที่เว็บเป็นพื้นที่เก็บรูป หากสามารถ link มาที่ภาพได้ คนก็จะโพสรูป แล้วเอาไปใช้ที่อื่นๆ กลายเป็นเว็บแจกพื้นที่เก็บรูปไป
แต่สงสัยจะไม่มีทางทำได้จริงๆแฮะ ถามมากี่ที่ก็ยังไม่เห็นมีใครทำได้จริงๆ ส่วนใหญ่จะทำได้ในเชิงทฤษฎี
ครั้นจะไปภามเว็บฝรั่ง ภาษาอังกฤษก็ไม่แข็งแรงพอ
Date :
23 มิ.ย. 2548 14:46:07
By :
นัท
คลิกซ้ายลิงค์งัยครับ คลิกแล้วก็ให้บันทึกไง ทำลิงค์ไปยังภาพภาพ ข้างบนเป็นการป้องกันคลิกขวาครับ
มองออกยัง..
Date :
23 มิ.ย. 2548 15:21:44
By :
noom_programmer
โอยยๆ คุณยังมองไม่ออกอีกเหรอ
ลิงค์ดาวโหลด เช่น <a href="http://www.test/images/01.jpg" onmousemove="javascript:window.status='คุณกำลังจะดาวน์โหลดไฟล์รูปภาพนะ คุณจะมองไม่เห็น path นะครับ';" onmouseout="javascript:window.status='สถานะปกติครับ';">ดาวน์โหลดรูปภาพ</a>
********** เมื่อมีการคลิกที่ลิงค์มันจะขึ้นหน้าต่างให้เซฟเอง *********
และก็มองไม่เห็น path ภาพด้วย และสามารถป้องกันการคลิกขวาได้ด้วย เพื่อป้องกันการดู properties ....ได้จากโค้ดป้องกันการคลิกขวาที่ให้ไปก่อนหน้าครับ
Date :
23 มิ.ย. 2548 15:27:09
By :
noom_programmer
ยังมองไม่ออกจริงๆครับ ช่วยอธิบายอีกนิดนะ
คลิก link ที่คำว่า ดาวน์โหลด มันก็ไปที่ไฟล์รูปภาพไม่ใช่เหรอครับ
////////////////////////////////////////////////////////////////////////////
<script language="JavaScript">
function rightclick()
{
if(event.button==2){
alert("ฮั่นแน่!!! รู้นะคิดอารายอยู่");
}
}
document.onmousedown=rightclick;
if(document.layers){
window.captureEvents(Event.Mousedown);
}
</script>
<a href="image/01.jpg" onmousemove="javascript:window.status='คุณกำลังจะดาวน์โหลดไฟล์รูปภาพนะ คุณจะมองไม่เห็น path นะครับ';" onmouseout="javascript:window.status='สถานะปกติครับ';">ดาวน์โหลดรูปภาพ </a>
///////////////////////////////////////////////////////////////////////////////
Date :
23 มิ.ย. 2548 16:23:47
By :
นัท
งั้นลองดาวน์โหลด Template To Day ของ thaicreate ดูครับ เขาก็ทำลิงค์ไปยังรูปภาพเหมือนกัน
** https://www.thaicreate.com/template/PicTPBox/template004m.gif ยังลิงค์แล้วเซฟได้เลย แต่ทาง thaicreate
ขาดการป้องกันการคลิกขวาดู properties ก็เท่านั้นเอง
*** อาจเป็นไปได้ถ้าในเครื่องผู้ใช้มีโปรแกรมพรีวิวรูปภาพ ทำให้ลิงค์ไปแล้วเปิดรูปภาพดังที่เห็นดังกล่าว
Date :
24 มิ.ย. 2548 08:40:44
By :
noom_programmer
อ่ะจ๋าย มิน่าล่ะ ของเค้าเป็น zip ไฟล์
เอ่อ ลิงค์ไปยังภาพจริงๆๆ ผมว่าลอง zip ไฟล์ภาพดูรับรองได้แน่นอน หรือไม่ก็ใช้วิธีเดิมของคุณแล้วล่ะครับ
Date :
24 มิ.ย. 2548 08:46:43
By :
noom_programmer
ครับ ขอบคุณครับ
วิธีเดิมของผมมันยังติดปัญหาอ่ะ เลยใช้ไม่ได้
แต่ไม่เป็นไร ไม่ได้ก็คือไม่ได้ ทำใจแล้ว
ยังไงก็ขอบคุณสำหรับทุกคำแนะนำนะครับ
Date :
24 มิ.ย. 2548 12:59:47
By :
นัท
ลองประยุกต์ใช้ดูนะครับ
start.php
<A href='http://localhost/images.php'>http://localhost/images.php</A>
images.php
<?
function stab_es_gif()
{
header("Content-type: image/gif");
header("Content-length: 847");
echo base64_decode(
'R0lGODlhCgAYAPcAAIyMjL29vf//////////////////////////////////'.
'////////////////////////////////////////////////////////////'.
'////////////////////////////////////////////////////////////'.
'////////////////////////////////////////////////////////////'.
'////////////////////////////////////////////////////////////'.
'////////////////////////////////////////////////////////////'.
'////////////////////////////////////////////////////////////'.
'////////////////////////////////////////////////////////////'.
'////////////////////////////////////////////////////////////'.
'////////////////////////////////////////////////////////////'.
'////////////////////////////////////////////////////////////'.
'////////////////////////////////////////////////////////////'.
'////////////////////////////////////////////////////////////'.
'////////////////////////////////////////////////////////////'.
'////////////////////////////////////////////////////////////'.
'////////////////////////////////////////////////////////////'.
'////////////////////////////////////////////////////////////'.
'/////////////////////ywAAAAACgAYAEAINAADBBBAsKDBgwQHIkx4UOFC'.
'gw4ROoz4UABFiRUvFtTI0GLFjhk/egz5kOPIhSZTklwIICAAOw=='.
'');
}
if ($_SERVER['HTTP_REFERER']!='http://localhost/start.php') {
echo 'boooo!! ';
} else {
echo stab_es_gif();
}
?>
Date :
24 มิ.ย. 2548 13:12:47
By :
surenus
วิธีนี้ก็ใช้ไม่ได้อยุ๋ดี เพราะว่า เค้าเข้าไปที่ C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files ของวินโด ก็จะเก็บ พวก tempไว้อ่ะ
Date :
25 มิ.ย. 2548 09:57:23
By :
โจผีนะ
รบกวนถามโค้ดนิดนะครับ
คือว่าผมใส่ ป้องกันการเซฟภาพ
ในเวปอ่ะครับ
แต่ปรากฎว่าเจอ BUG ตรงที่เมื่อเอาลูกศรชี้ไปมุมบนขวา
มันมีicon save,print,send e-mail อ่ะครับ
แก้ไงครับ
คือมันสามารถ Save ได้อ่ะครับ
Date :
2009-06-17 13:26:31
By :
aakkeng
คือทำเว็บที่มีรูปภาพ อยากจะป้องกันไม่ให้คนรู้ที่อยู่ภาพ จะได้ไม่สามารถใช้โปรแกรมดูดภาพได้ รวมถึงอยากให้คนดูภาพและเซฟภาพจากทางหน้าเว็บ ไม่อยากให้ทำเป็น link เอาไปใช้ที่อื่น
-----------------------------------------------------------
คำถามพวกนี้ฮ่าดีครับ ชอบดีต้องหา logic กัน ความต้องการของเขาคือต้องการให้save ภาพ แต่ไม่ให้รู้ path
แนวคิด ฮ่าๆนะ
1. ใช้ พวก แฟลต ไว้ดูรูปภาพ ครับ มีข้อแม้ว่าแฟลตต้องไปถึง path จากไฟล์ หรือฐานข้อมูลมา เพราะมัน ก้อบ แฟลตได้
2. สร้างโคตตัว save สำหรับรูปภาพแยกเลย ลองหาดูนะครับ
Date :
2009-12-25 14:06:50
By :
tapi
อันนี้ยังไม่ได้ลองแต่คิด เฉยๆ ถ้าไม่ดีก็อย่าว่านะครับ เพราะความคิดมันประดิษ ได้
Date :
2009-12-25 14:07:48
By :
tapi
Load balance : Server 02