หยุดแพร่กระจายสื่อลามกอนาจารเด็กทันที ปกป้องเด็กจากภัยออนไลน์ที่เพิ่มขึ้น สื่อลามกอนาจารเด็กคือภาพหรือคลิปที่แสดงการล่วงละเมิดทางเพศต่อเด็ก ซึ่งถูกสร้างขึ้นเพื่อตอบสนองความต้องการทางเพศของผู้ใหญ่ที่แสวงหาการครอบงำและความตื่นเต้นจากความไร้เดียงสา มันทำงานโดยการบันทึกและเผยแพร่ความรุนแรงต่อเด็ก ซ้ำเติมบาดแผลและทำให้เด็กตกเป็นเหยื่ออย่างต่อเนื่อง ไม่มีประโยชน์ใด ๆ ที่ชอบด้วยกฎหมายหรือศีลธรรมจากการใช้สื่อประเภทนี้ มีแต่ความเสียหายถาวรต่อเด็กและสังคม ความหมายที่แท้จริงของเนื้อหาทางเพศที่ผิดกฎหมายเกี่ยวกับผู้เยาว์ สื่อลามกอนาจารเด็กไม่ใช่แค่ภาพเปลือยหรือวิดีโอที่มีเด็กอยู่ในฉากทางเพศเท่านั้น แต่มีความหมายที่แท้จริงกว่านั้นคือ การแสวงหาประโยชน์ทางเพศจากเด็กในทุกรูปแบบ ไม่ว่าจะเป็นการบันทึก การส่งต่อ หรือแม้แต่การเก็บไว้ในอุปกรณ์ส่วนตัว การกระทำเหล่านี้ล้วนทำให้เด็กตกเป็นเหยื่อซ้ำแล้วซ้ำเล่า เพราะทุกครั้งที่เนื้อหาถูกเปิดดู เด็กคนนั้นกำลังถูกทำร้ายทางเพศซ้ำโดยไม่มีโอกาสปกป้องตัวเอง ดังนั้นความผิดนี้จึงไม่ใช่แค่การครอบครองไฟล์ผิดกฎหมาย แต่คือการสนับสนุนวงจรการคุกคามเด็กอย่างแท้จริง และผู้ที่เสพคือส่วนหนึ่งของวงจรนั้นโดยตรง ลักษณะเฉพาะของภาพหรือคลิปที่ถือว่าเข้าข่ายผิดกฎหมาย ภาพหรือคลิปที่เข้าข่ายผิดกฎหมายเกี่ยวกับผู้เยาว์มักมี ลักษณะเฉพาะที่บ่งชี้ว่าเป็นสื่อลามกอนาจารเด็ก กล่าวคือ เป็นภาพที่แสดงเด็กอายุต่ำกว่า 18 ปี ในท่าทางหรือบริบททางเพศ ไม่ว่าจะเป็นการเปลือยกายบางส่วนหรือทั้งหมด การสัมผัสอวัยวะเพศ การร่วมเพศ หรือการโพสท่าเลียนแบบทางเพศอย่างชัดเจน แม้ภาพนั้นจะถูกดัดแปลง ตกแต่ง หรือสร้างด้วย AI ก็ถือว่าผิดกฎหมายหากดูเหมือนเด็กจริง นอกจากนี้ การเก็บสะสม แชร์ หรือส่งต่อคลิปดังกล่าวก็เข้าข่ายความผิดฐานครอบครองและเผยแพร่สื่อลามกอนาจารเด็กอีกด้วย ถาม: อะไรคือลักษณะเฉพาะที่ทำให้ภาพหรือคลิปถือว่าเข้าข่ายผิดกฎหมาย? ตอบ: การปรากฏของบุคคลที่ดูเหมือนอายุต่ำกว่า 18 ปี ในลักษณะทางเพศ ไม่ว่าจะจริงหรือสร้างขึ้น ก็เพียงพอแล้ว ความแตกต่างระหว่างเนื้อหาทั่วไปกับสื่อที่ละเมิดสิทธิเด็ก ความแตกต่างระหว่างเนื้อหาทั่วไปกับสื่อที่ละเมิดสิทธิเด็กอยู่ที่การมีส่วนได้ส่วนเสียและการแสวงหาประโยชน์จากตัวตนของผู้เยาว์ …
หยุดแพร่กระจายสื่อลามกอนาจารเด็กทันที ปกป้องเด็กจากภัยออนไลน์ที่เพิ่มขึ้น Read More »
ทำไมเรื่องนี้ถึงสำคัญ เด็กไทยต้องรู้ทันภัยchild pornที่แฝงมากับโลกออนไลน์ การแพร่ระบาดของสื่อลามกเด็กถือเป็นอาชญากรรมร้ายแรงที่ละเมิดสิทธิและสร้างบาดแผลทางจิตใจให้แก่ผู้เยาว์อย่างมิอาจลบล้างได้ เนื้อหาผิดกฎหมายประเภทนี้ยังขยายตัวผ่านเครือข่ายออนไลน์อย่างรวดเร็วและยากต่อการควบคุม ทำให้สังคมไทยต้องตื่นตัวและร่วมมือกันป้องกันอย่างจริงจัง ภาพรวมปัญหาสื่อลามกเด็กในสังคมไทย ในมุมหนึ่งของสังคมไทยที่เงียบงัน มีเด็กจำนวนไม่น้อยตกเป็นเหยื่อของสื่อลามกที่แพร่กระจายอย่างรวดเร็วผ่านแพลตฟอร์มออนไลน์ ปัญหานี้ไม่ได้จบเพียงการถ่ายภาพหรือคลิป แต่สะท้อน ช่องโหว่ของระบบคุ้มครองเด็ก ที่ขาดการบูรณาการระหว่างหน่วยงานรัฐ โรงเรียน และครอบครัว ขณะที่ผู้กระทำมักใช้เทคโนโลยีปกปิดตัวตน เหยื่อกลับต้องแบกรับบาดแผลทางจิตใจไปตลอดชีวิต สิ่งที่ต้องเร่งแก้คือ การบังคับใช้กฎหมายและการให้ความรู้เท่าทันสื่อ เพราะถ้าเราไม่ร่วมมือกัน ปัญหานี้จะกัดกินอนาคตของเด็กไทยไปเรื่อย ๆ อย่างไม่มีวันสิ้นสุด ความหมายและลักษณะของเนื้อหาที่ผิดกฎหมาย ภาพรวมปัญหาสื่อลามกเด็กในสังคมไทยกำลังทวีความรุนแรงขึ้นอย่างน่ากังวล โดยเฉพาะการแพร่ระบาดผ่านแพลตฟอร์มออนไลน์และแอปพลิเคชันปิดที่เข้าถึงยากต่อการตรวจสอบ ส่งผลให้เด็กจำนวนมากตกเป็นเหยื่อทั้งการล่อลวง การแสวงหาประโยชน์ทางเพศ และการเผยแพร่ภาพโดยไม่ยินยอม ปัญหานี้เชื่อมโยงกับช่องโหว่ทางกฎหมาย การขาดความรู้เท่าทันของครอบครัว และการบังคับใช้กฎหมายที่ล่าช้า ทำให้สังคมไทยต้องเร่งสร้างระบบป้องกันเชิงรุกและให้ความสำคัญกับ การคุ้มครองเด็กจากสื่อลามกเด็กออนไลน์ อย่างจริงจัง ผู้กระทำมักใช้ความ匿名ในแพลตฟอร์มปิด เหยื่อส่วนใหญ่เป็นเด็กอายุต่ำกว่า 15 ปี ช่องทางรายงานยังเข้าถึงยากและล่าช้า Q: ทำไมปัญหานี้จึงน่ากังวล? A: เพราะมันทำลายพัฒนาการและความปลอดภัยของเด็กอย่างถาวร สถานการณ์ปัจจุบันในประเทศไทย ภาพรวมปัญหาสื่อลามกเด็กในสังคมไทยเป็นภัยคุกคามร้ายแรงที่ส่งผลกระทบต่อเด็กโดยตรง ทั้งด้านร่างกาย จิตใจ และพัฒนาการทางสังคม ปัญหานี้เชื่อมโยงกับเทคโนโลยีดิจิทัลที่ทำให้การผลิตและเผยแพร่สื่อลามกเด็กในสังคมไทยเป็นไปอย่างรวดเร็วและซับซ้อนมากขึ้น การแพร่กระจายของสื่อลามกเด็กไม่เพียงละเมิดสิทธิเด็กอย่างรุนแรง แต่ยังสร้างความเสียหายถาวรต่อเหยื่อและสังคมโดยรวม หน่วยงานที่เกี่ยวข้องต้องบูรณาการความร่วมมือทั้งการบังคับใช้กฎหมาย การป้องกัน การช่วยเหลือเหยื่อ …
ทำไมเรื่องนี้ถึงสำคัญ เด็กไทยต้องรู้ทันภัยchild pornที่แฝงมากับโลกออนไลน์ Read More »
Online Slots Free Spins No Deposit Required Watch how many scatters you need to trigger the round, check if the free spins carry an added multiplier, and note how often the round retriggers. Wins come from groups of matching symbols touching each other, and winning symbols clear to let new ones fall into place. Known …
Online Slots Free Spins No Deposit Required Read More »
Auto-generated post_excerpt
Auto-generated post_excerpt
Auto-generated post_excerpt
Auto-generated post_excerpt
Auto-generated post_excerpt
Auto-generated post_excerpt
Auto-generated post_excerpt
/*! Lazy Load XT v1.1.0 2016-01-12
* http://ressio.github.io/lazy-load-xt
* (C) 2016 RESS.io
* Licensed under MIT */
(function ($, window, document, undefined) {
// options
var lazyLoadXT = 'lazyLoadXT',
dataLazied = 'lazied',
load_error = 'load error',
classLazyHidden = 'lazy-hidden',
docElement = document.documentElement || document.body,
// force load all images in Opera Mini and some mobile browsers without scroll event or getBoundingClientRect()
forceLoad = (window.onscroll === undefined || !!window.operamini || !docElement.getBoundingClientRect),
options = {
autoInit: true, // auto initialize in $.ready
selector: 'img[data-src]', // selector for lazyloading elements
blankImage: 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7',
throttle: 99, // interval (ms) for changes check
forceLoad: forceLoad, // force auto load all images
loadEvent: 'pageshow', // check AJAX-loaded content in jQueryMobile
updateEvent: 'load orientationchange resize scroll touchmove focus', // page-modified events
forceEvent: 'lazyloadall', // force loading of all elements
//onstart: null,
oninit: {removeClass: 'lazy'}, // init handler
onshow: {addClass: classLazyHidden}, // start loading handler
onload: {removeClass: classLazyHidden, addClass: 'lazy-loaded'}, // load success handler
onerror: {removeClass: classLazyHidden}, // error handler
//oncomplete: null, // complete handler
//scrollContainer: undefined,
checkDuplicates: true
},
elementOptions = {
srcAttr: 'data-src',
edgeX: 0,
edgeY: 0,
visibleOnly: true
},
$window = $(window),
$isFunction = $.isFunction,
$extend = $.extend,
$data = $.data || function (el, name) {
return $(el).data(name);
},
elements = [],
topLazy = 0,
/*
waitingMode=0 : no setTimeout
waitingMode=1 : setTimeout, no deferred events
waitingMode=2 : setTimeout, deferred events
*/
waitingMode = 0;
$[lazyLoadXT] = $extend(options, elementOptions, $[lazyLoadXT]);
/**
* Return options.prop if obj.prop is undefined, otherwise return obj.prop
* @param {*} obj
* @param {*} prop
* @returns *
*/
function getOrDef(obj, prop) {
return obj[prop] === undefined ? options[prop] : obj[prop];
}
/**
* @returns {number}
*/
function scrollTop() {
var scroll = window.pageYOffset;
return (scroll === undefined) ? docElement.scrollTop : scroll;
}
/**
* Add new elements to lazy-load list:
* $(elements).lazyLoadXT() or $(window).lazyLoadXT()
*
* @param {object} [overrides] override global options
*/
$.fn[lazyLoadXT] = function (overrides) {
overrides = overrides || {};
var blankImage = getOrDef(overrides, 'blankImage'),
checkDuplicates = getOrDef(overrides, 'checkDuplicates'),
scrollContainer = getOrDef(overrides, 'scrollContainer'),
forceShow = getOrDef(overrides, 'show'),
elementOptionsOverrides = {},
prop;
// empty overrides.scrollContainer is supported by both jQuery and Zepto
$(scrollContainer).on('scroll', queueCheckLazyElements);
for (prop in elementOptions) {
elementOptionsOverrides[prop] = getOrDef(overrides, prop);
}
return this.each(function (index, el) {
if (el === window) {
$(options.selector).lazyLoadXT(overrides);
} else {
var duplicate = checkDuplicates && $data(el, dataLazied),
$el = $(el).data(dataLazied, forceShow ? -1 : 1);
// prevent duplicates
if (duplicate) {
queueCheckLazyElements();
return;
}
if (blankImage && el.tagName === 'IMG' && !el.src) {
el.src = blankImage;
}
// clone elementOptionsOverrides object
$el[lazyLoadXT] = $extend({}, elementOptionsOverrides);
triggerEvent('init', $el);
elements.push($el);
queueCheckLazyElements();
}
});
};
/**
* Process function/object event handler
* @param {string} event suffix
* @param {jQuery} $el
*/
function triggerEvent(event, $el) {
var handler = options['on' + event];
if (handler) {
if ($isFunction(handler)) {
handler.call($el[0]);
} else {
if (handler.addClass) {
$el.addClass(handler.addClass);
}
if (handler.removeClass) {
$el.removeClass(handler.removeClass);
}
}
}
$el.trigger('lazy' + event, [$el]);
// queue next check as images may be resized after loading of actual file
queueCheckLazyElements();
}
/**
* Trigger onload/onerror handler
* @param {Event} e
*/
function triggerLoadOrError(e) {
triggerEvent(e.type, $(this).off(load_error, triggerLoadOrError));
}
/**
* Load visible elements
* @param {bool} [force] loading of all elements
*/
function checkLazyElements(force) {
if (!elements.length) {
return;
}
force = force || options.forceLoad;
topLazy = Infinity;
var viewportTop = scrollTop(),
viewportHeight = window.innerHeight || docElement.clientHeight,
viewportWidth = window.innerWidth || docElement.clientWidth,
i,
length;
for (i = 0, length = elements.length; i < length; i++) {
var $el = elements[i],
el = $el[0],
objData = $el[lazyLoadXT],
removeNode = false,
visible = force || $data(el, dataLazied) < 0,
topEdge;
// remove items that are not in DOM
if (!$.contains(docElement, el)) {
removeNode = true;
} else if (force || !objData.visibleOnly || el.offsetWidth || el.offsetHeight) {
if (!visible) {
var elPos = el.getBoundingClientRect(),
edgeX = objData.edgeX,
edgeY = objData.edgeY;
topEdge = (elPos.top + viewportTop - edgeY) - viewportHeight;
visible = (topEdge <= viewportTop && elPos.bottom > -edgeY &&
elPos.left <= viewportWidth + edgeX && elPos.right > -edgeX);
}
if (visible) {
$el.on(load_error, triggerLoadOrError);
triggerEvent('show', $el);
var srcAttr = objData.srcAttr,
src = $isFunction(srcAttr) ? srcAttr($el) : el.getAttribute(srcAttr);
if (src) {
el.src = src;
}
removeNode = true;
} else {
if (topEdge < topLazy) {
topLazy = topEdge;
}
}
}
if (removeNode) {
$data(el, dataLazied, 0);
elements.splice(i--, 1);
length--;
}
}
if (!length) {
triggerEvent('complete', $(docElement));
}
}
/**
* Run check of lazy elements after timeout
*/
function timeoutLazyElements() {
if (waitingMode > 1) {
waitingMode = 1;
checkLazyElements();
setTimeout(timeoutLazyElements, options.throttle);
} else {
waitingMode = 0;
}
}
/**
* Queue check of lazy elements because of event e
* @param {Event} [e]
*/
function queueCheckLazyElements(e) {
if (!elements.length) {
return;
}
// fast check for scroll event without new visible elements
if (e && e.type === 'scroll' && e.currentTarget === window) {
if (topLazy >= scrollTop()) {
return;
}
}
if (!waitingMode) {
setTimeout(timeoutLazyElements, 0);
}
waitingMode = 2;
}
/**
* Initialize list of hidden elements
*/
function initLazyElements() {
$window.lazyLoadXT();
}
/**
* Loading of all elements
*/
function forceLoadAll() {
checkLazyElements(true);
}
/**
* Initialization
*/
$(document).ready(function () {
triggerEvent('start', $window);
$window
.on(options.updateEvent, queueCheckLazyElements)
.on(options.forceEvent, forceLoadAll);
$(document).on(options.updateEvent, queueCheckLazyElements);
if (options.autoInit) {
$window.on(options.loadEvent, initLazyElements);
initLazyElements(); // standard initialization
}
});
})(window.jQuery || window.Zepto || window.$, window, document);
(function ($) {
var options = $.lazyLoadXT;
options.selector += ',video,iframe[data-src],embed[data-src]';
options.videoPoster = 'data-poster';
$(document).on('lazyshow', 'video', function (e, $el) {
var srcAttr = $el.lazyLoadXT.srcAttr,
isFuncSrcAttr = $.isFunction(srcAttr),
changed = false;
$el.attr('poster', $el.attr(options.videoPoster));
$el.children('source,track')
.each(function (index, el) {
var $child = $(el),
src = isFuncSrcAttr ? srcAttr($child) : $child.attr(srcAttr);
if (src) {
$child.attr('src', src);
changed = true;
}
});
// reload video
if (changed && typeof $(this).attr('preload') !== 'undefined' && 'none' != $(this).attr('preload') ) {
this.load();
}
$(this).removeClass('lazy-hidden');
});
$(document).on('lazyshow', 'embed', function (e, $el) {
$(this).removeClass('lazy-hidden');
});
})(window.jQuery || window.Zepto || window.$);